| 5 | 1/1 | 返回列表 |
| 查看: 1679 | 回復(fù): 7 | ||
| 當(dāng)前只顯示滿足指定條件的回帖,點擊這里查看本話題的所有回帖 | ||
[求助]
matlab循環(huán)計算轉(zhuǎn)為矩陣 30金幣求助
|
||
|
程序是用來做菲涅爾積分的,由于程序運算時間太長,因此想把最耗時的兩重for循環(huán)運算部分改為矩陣運算形式,但沒找到合適的方法,循環(huán)中運行的語句本身就是一個矩陣運算,想請教各位怎么改成完全矩陣運算的程序。 X1=-22e-3; X2=22e-3; Y1=-22e-3; Y2=22e-3; Num0=128; [x,y]=meshgrid(X1 X2-X1)/(Num0-1):X2,Y1 Y2-Y1)/(Num0-1):Y2);for i=1:Num0 x1=x(1,i); for j=1:Num0 y1=y(j,1); Fij=Fun2.*exp(sqrt((x1-x).^2+(y1-y).^2)); %Fun2是一個矩陣函數(shù) Fun3(i,j)=sum(sum(Fij)); end end |
銅蟲 (小有名氣)

銅蟲 (小有名氣)
你好。關(guān)于兩個循環(huán),實在是想不出什么好的方法,主要是求各個點到其它點的距離這一項,試了總是不行。![]() 但如果你確定是用這一組X1,X2,Y1,Y2,就可以偷下懶。 我的程序暫時以Num0=8為例進(jìn)行說明。只要X關(guān)于點對稱,Y關(guān)于點對稱,就好辦。 你的F3是一個大的對稱的矩陣。我們只要生成這個矩陣的1/8.通過轉(zhuǎn)置,翻轉(zhuǎn)等操作(matlab對矩陣的運算還是挺快的。),可以生成Fun3。 當(dāng)Num0=8的時候,兩層循環(huán)比較好。 Elapsed time is 0.000551 seconds. Elapsed time is 0.012936 seconds. 當(dāng)Num0=32的時候,兩種方法差不多。 Elapsed time is 0.063168 seconds. Elapsed time is 0.021089 seconds. 當(dāng)Num0=128的時候,偷懶的方法要好些,可能是Num0越大,效果越好,但應(yīng)該是有上限的,這要看你的內(nèi)存值(用空間換時間就是)。 Elapsed time is 8.402686 seconds. Elapsed time is 0.986670 seconds. clear all clc % X1=-22e-3; % X2=22e-3; % Y1=-22e-3; % Y2=22e-3; % different X,Y X1=-20e-3; X2=20e-3; Y1=-21e-3; Y2=21e-3; Num0=128;% u can change it for 8,32 64 and 128 tm_lu=zeros(Num0/2,Num0/2); tm_lu=zeros(Num0/2,Num0); tmp =zeros(Num0,Num0); Fun2=1; x_l=X1 X2-X1)/(Num0-1):X2;y_l=Y1 Y2-Y1)/(Num0-1):Y2;[x,y]=meshgrid(x_l,y_l); %% your way tic for i=1:Num0 x1=x_l(i); for j=1:Num0 y1=y_l(j); Fij=Fun2.*exp(sqrt((x1-x).^2+(y1-y).^2)); %Fun2是一個矩陣函數(shù) F3(i,j)=sum(Fij( );end end toc %% tic for i=1:Num0/2 x1=x_l(i); for j=1:i y1=y_l(j); Fij=Fun2.*exp(sqrt((x1-x).^2+(y1-y).^2)); %Fun2是一個矩陣函數(shù) tm(i,j)=sum(Fij( );end end tm_lu=tm+tm'-tril(tm'); tm_u=[tm_lu,flipud(tm_lu)']; F4=[tm_u;flipud(tm_u)]; toc % modified on : 22-Nov-2012 19:11:35 % typed by : m |

銀蟲 (小有名氣)
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 0856調(diào)劑 +3 | 曲聽筠 2026-03-30 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 297 地理學(xué)070500 復(fù)試求調(diào)劑 +3 | 小圓圈圈ooo 2026-03-30 | 3/150 |
|
|
[考研] 085600,專業(yè)課化工原理,320分求調(diào)劑 +5 | 大饞小子 2026-03-29 | 5/250 |
|
|
[考研] 0856求調(diào)劑 +8 | 楒桉 2026-03-28 | 8/400 |
|
|
[考研] 一志愿南航 335分 | 0856 | GPA 4.07 | 有科研經(jīng)歷 +8 | cccchenso 2026-03-29 | 8/400 |
|
|
[考研] 279求調(diào)劑 +4 | 蝶舞輕繞 2026-03-29 | 4/200 |
|
|
[考研] 11408軟件工程求調(diào)劑 +3 | Qiu學(xué)ing 2026-03-28 | 3/150 |
|
|
[考研] 復(fù)試調(diào)劑 +3 | raojunqi0129 2026-03-28 | 3/150 |
|
|
[考研] 304求調(diào)劑 +6 | 曼殊2266 2026-03-27 | 6/300 |
|
|
[考研] 266分,求材料冶金能源化工等調(diào)劑 +7 | 哇呼哼呼哼 2026-03-27 | 9/450 |
|
|
[考研] 283求調(diào)劑 +7 | A child 2026-03-28 | 7/350 |
|
|
[考研] 081200-314 +3 | LILIQQ 2026-03-27 | 4/200 |
|
|
[考研] 265求調(diào)劑 +8 | 小木蟲085600 2026-03-27 | 8/400 |
|
|
[考研] 285求調(diào)劑 +4 | AZMK 2026-03-27 | 7/350 |
|
|
[考研] 0703化學(xué)338求調(diào)劑! +6 | Zuhui0306 2026-03-26 | 7/350 |
|
|
[考研] 081200-11408-276學(xué)碩求調(diào)劑 +4 | 崔wj 2026-03-26 | 4/200 |
|
|
[考研] 341求調(diào)劑 +7 | 青檸檬1 2026-03-26 | 7/350 |
|
|
[考研]
|
WWW西西弗斯 2026-03-24 | 8/400 |
|
|
[考研] 296求調(diào)劑 +4 | 汪?! 2026-03-25 | 7/350 |
|
|
[考研] 285求調(diào)劑 +3 | AZMK 2026-03-24 | 3/150 |
|