| 5 | 1/1 | 返回列表 |
| 查看: 1680 | 回復(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為例進行說明。只要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ā)表 | |
|---|---|---|---|---|
|
[考研] 生物考研337分求調(diào)劑 +3 | cgxin 2026-03-30 | 5/250 |
|
|---|---|---|---|---|
|
[考研] 269求調(diào)劑 +4 | 我想讀研11 2026-03-31 | 4/200 |
|
|
[考研] 083000學(xué)碩274求調(diào)劑 +12 | Li李魚 2026-03-26 | 12/600 |
|
|
[考研] 293分求調(diào)劑,外語為俄語 +5 | 加一一九 2026-03-31 | 5/250 |
|
|
[考研] 346求調(diào)劑 一志愿070303有機化學(xué) +7 | 蘿卜燉青菜 2026-03-28 | 8/400 |
|
|
[考研] 327求調(diào)劑 +5 | 小卡不卡. 2026-03-29 | 5/250 |
|
|
[考研] 295材料工程專碩求調(diào)劑 +10 | 1428151015 2026-03-27 | 10/500 |
|
|
[考研] 求調(diào)劑 +10 | 家佳佳佳佳佳 2026-03-29 | 10/500 |
|
|
[考研] 化學(xué)0703 調(diào)劑 306分 一志愿211 +8 | 26要上岸 2026-03-28 | 8/400 |
|
|
[考研] 0703 化學(xué) 求調(diào)劑,一志愿山東大學(xué) 342 分 +7 | Shern—- 2026-03-28 | 7/350 |
|
|
[考研] 283求調(diào)劑(080500) +14 | A child 2026-03-27 | 14/700 |
|
|
[考研] 311求調(diào)劑 +10 | lin0039 2026-03-26 | 10/500 |
|
|
[考研] 275求調(diào)劑 +15 | Micky11223 2026-03-25 | 20/1000 |
|
|
[考研] 279求調(diào)劑 +4 | 蝶舞輕繞 2026-03-29 | 4/200 |
|
|
[考研] 085600,專業(yè)課化工原理,321分求調(diào)劑 +5 | 大饞小子 2026-03-28 | 5/250 |
|
|
[考研] 304求調(diào)劑 +6 | 曼殊2266 2026-03-27 | 6/300 |
|
|
[考研] 085600,材料與化工321分調(diào)劑 +4 | 大饞小子 2026-03-27 | 6/300 |
|
|
[考研] 調(diào)劑推薦 +5 | 清酒714 2026-03-26 | 6/300 |
|
|
[碩博家園] 北京林業(yè)大學(xué)碩導(dǎo)招生廣告 +6 | kongweilin 2026-03-26 | 8/400 |
|
|
[考研] 一志愿 南京郵電大學(xué) 288分 材料考研 求調(diào)劑 +3 | jl0720 2026-03-26 | 3/150 |
|