| 8 | 1/1 | 返回列表 |
| 查看: 1677 | 回復(fù): 7 | ||||
[求助]
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為例進行說明。只要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 |

銅蟲 (小有名氣)

銀蟲 (小有名氣)
榮譽版主 (著名寫手)
彩色掛圖
![]() |
專家經(jīng)驗: +2 |
|
菲涅爾積分用 c1=mfun('FresnelC',x) s1=mfun('FresnelS',y) 計算,詳細(xì)的你可以看看網(wǎng)上的一個算法,應(yīng)該會快些的 http://wenku.baidu.com/view/76f633c29ec3d5bbfd0a74fd.html |

| 8 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 291求調(diào)劑 +8 | Y-cap 2026-03-29 | 10/500 |
|
|---|---|---|---|---|
|
[考研] 0703一志愿9,初試成績:338,四六級已過,有科研經(jīng)歷,求調(diào)劑! +7 | Zuhui0306 2026-03-25 | 7/350 |
|
|
[考研] 287求調(diào)劑 +14 | land xuxu 2026-03-26 | 14/700 |
|
|
[考研] 297求調(diào)劑 +17 | 田洪有 2026-03-26 | 18/900 |
|
|
[考研] 291求調(diào)劑 +8 | HanBeiNingZC 2026-03-24 | 8/400 |
|
|
[考研] 277跪求調(diào)劑 +7 | 1915668 2026-03-27 | 11/550 |
|
|
[考研] 0856求調(diào)劑 +8 | 楒桉 2026-03-28 | 8/400 |
|
|
[考博] 26申博自薦 +6 | whh869393 2026-03-24 | 6/300 |
|
|
[考研] 材料科學(xué)與工程求調(diào)劑 +6 | 深V宿舍吧 2026-03-29 | 6/300 |
|
|
[考研] 總分293求調(diào)劑 +8 | 加一一九 2026-03-25 | 11/550 |
|
|
[考研] 340求調(diào)劑 +6 | Amber00 2026-03-26 | 6/300 |
|
|
[考研] 0703化學(xué)調(diào)劑,求導(dǎo)師收 +9 | 天天好運來上岸?/a> 2026-03-24 | 10/500 |
|
|
[考研] 322求調(diào)劑 +5 | 舊吢 2026-03-24 | 5/250 |
|
|
[考研] 081200-314 +3 | LILIQQ 2026-03-27 | 4/200 |
|
|
[材料工程] 一志愿C9材料與化工專業(yè)總分300求調(diào)劑 +8 | 曼111 2026-03-24 | 9/450 |
|
|
[考研] 求調(diào)劑推薦 材料 304 +15 | 荷包蛋hyj 2026-03-26 | 15/750 |
|
|
[考研] 331環(huán)境科學(xué)與工程求調(diào)劑 +3 | 熠然好運氣 2026-03-27 | 3/150 |
|
|
[考研] 安徽大學(xué)專碩生物與醫(yī)藥專業(yè)(086000)324分,英語已過四六級,六級521,求調(diào)劑 +4 | 美味可樂雞翅 2026-03-26 | 4/200 |
|
|
[考研] 308求調(diào)劑 +7 | 墨墨漠 2026-03-25 | 7/350 |
|
|
[考研] 求調(diào)劑 +3 | 李李不服輸 2026-03-25 | 3/150 |
|