日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

三重for循环优化_MATALB中对循环操作的优化

發(fā)布時(shí)間:2025/4/16 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 三重for循环优化_MATALB中对循环操作的优化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

眾所周知,MATLAB程序效率最低最有潛力的地方便是循環(huán)了。最常見的循環(huán)莫過于對(duì)矩陣中的每一個(gè)元素進(jìn)行操作,對(duì)于編程思維還在C語言或者C++,JAVA的人來說,第一反應(yīng)就是兩層循環(huán),先來個(gè) “for i=1:m”對(duì)矩陣的行進(jìn)行循環(huán),再來個(gè)“for j=1:n”對(duì)矩陣的列進(jìn)行循環(huán)。所以我前面就直接寫出了一個(gè)四重for循環(huán),被自己蠢哭了!程序時(shí)間長(zhǎng)到壓根沒法等。其實(shí)自己知道這四重循環(huán)是可以優(yōu)化的,但一直沒專門研究過MATLAB循環(huán)優(yōu)化的問題,既然碰到了,也就專門考慮了下這個(gè)問題。下面有兩種對(duì)于矩陣元素操作for循環(huán)的優(yōu)化方法。

? ? ? ? ? ?一,采用meshgrid函數(shù)。

? ? ? 大家都知道采用向量化或者矩陣化運(yùn)算來代替循環(huán)是MATLAB里最好的最有效率的優(yōu)化方法。這里對(duì)于2*3大小的矩陣A的元素進(jìn)行操作,就可以采用meshgrid函數(shù)對(duì)for循環(huán)進(jìn)行矩陣化替代。對(duì)于

i=1:2;

j=1:3;

可以替代為

[m,n]=meshgrid(i , j);
m=[ 1 1 1
2 2 2 ]

n=[1 2 3
1 2 3 ]

可以看到這里,生成的矩陣m和n的規(guī)模大小是相等的,都是2*3 。

A(m(1,1),n(1,1))=A(1,1) ?A(m(2,2),n(2,2))=A(2,2)

A(m(2,1),n(2,1))=A(2,1) ??A(m(2,3),n(2,3))=A(2,3) ?

? ? 大家發(fā)現(xiàn)規(guī)律沒,m,n其實(shí)就是矩陣A的下角標(biāo)行和列的索引。例如:求函數(shù)f(x,y)=x^2+y^3,x=1:256,y=257:512,

優(yōu)化后的代碼:

x=1:256;

y=257:512;

[m,n]=meshgrid(x,y);

f=m.^2+n.^3;

完全沒有用到for循環(huán),采用矩陣化運(yùn)算,速度大幅度提高。

? ? 二,通過求余優(yōu)化

? ? ? ? 在電腦內(nèi)存里,矩陣作為二維向量,其實(shí)也是當(dāng)成一維矩陣存放的。假設(shè)A為3*4的矩陣,即A(2,3)=A(7)。所以,也可以把二維矩陣當(dāng)成一位向量來看。我們可以把一維矩陣A(k)通過求余的方法得到這個(gè)元素才二維矩陣?yán)飳?duì)應(yīng)的行i和列j。

? ? ? ?同樣采用A(2,3)=A(7)的例子,(7-1)/4+1,再向下取整得到2,(7-1)mod(4)+1=3 ,從而得到了A(7)元素在二維矩陣中對(duì)應(yīng)的下標(biāo)位置(2,3)。

例如,對(duì)于大小為m*n的矩陣A,計(jì)算B(i,j)=A(i,j)+i+j后的矩陣B,具體程序?qū)崿F(xiàn):

for k=1:m*n

? ? ?row=floor(k-1,n)+1;

? ? ?col=mod(k-1,n)+1;

? ? ?B(k)=A(k)+row+col;

end

? ? ?這樣就把兩層for循環(huán)優(yōu)化成了一層,雖然計(jì)算量并沒有減少多少,但可以這樣可以開MATLAB的并行運(yùn)算了,照樣可以大幅度提高運(yùn)算速度,因?yàn)閜arfor是不支持兩層兩層以上的循環(huán)的,所以這種優(yōu)化是有意義的。并且在適合的情況下,也可以進(jìn)一步把for k=1:m*n循環(huán)改成向量化運(yùn)算k=1:m*n,一層循環(huán)都不用。

總結(jié):

1)用矢量運(yùn)算代替循環(huán),可以極大提升運(yùn)算效率

2)在不可避免使用多重循環(huán)過程中,內(nèi)外循環(huán)次數(shù)的設(shè)置和列優(yōu)先是存在一個(gè)平衡點(diǎn)的。當(dāng)內(nèi)外循環(huán)次數(shù)相差較大,用內(nèi)重外輕的設(shè)計(jì)方案可以有效地提升程序的運(yùn)行效率,而此時(shí)的列訪問的優(yōu)勢(shì)正在失去;當(dāng)內(nèi)外循環(huán)次數(shù)相差不大時(shí),此時(shí)列訪問的運(yùn)算效率上的提升更加明顯!

總結(jié)

以上是生活随笔為你收集整理的三重for循环优化_MATALB中对循环操作的优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久九| 久久6视频| 男女互插视频 | 汗汗视频| 欧美日韩美女 | caopeng在线视频 | 亚洲综合大片69999 | 久久久久久久999 | 99爱精品视频 | 亚州av免费| av噜噜色| 亚洲激情欧美激情 | 91精品国产一区二区三区 | 亚洲综合五月天婷婷丁香 | 日韩在线观看一区二区 | 无套内谢少妇毛片 | 精射女上司 | 色吧视频 | 窝窝午夜理论片影院 | 国产精品一区二区免费 | 在线观看你懂得 | 男女床上拍拍拍 | 打屁股疼的撕心裂肺的视频 | 日本老熟妇乱 | 97国产精品人人爽人人做 | 可以看黄色的网站 | 青娱乐青青草 | 国产视频1区2区 | 国产最新在线观看 | 三级av免费 | 美女网站在线免费观看 | 婷婷爱爱 | www.成人在线观看 | 使劲插视频 | 国精产品一区一区三区 | jzjzz成人免费视频 | 国产免费黄色录像 | 孕妇疯狂做爰xxxⅹ 国产精品乱码久久久久久 99久久久成人国产精品 | 国产suv精品一区二区883 | 黄色片在线免费观看 | 国内精品毛片 | 91九色porn | www.亚洲一区二区三区 | 欧美三级视频网站 | 国产成人二区 | 国产乱码精品1区2区3区 | 91视频论坛 | 美国少妇在线观看免费 | 国产九色 | 亚洲精品日韩综合观看成人91 | 国产精品高清在线观看 | 91精品小视频| 无码国产精品一区二区免费式直播 | 午夜dv内射一区二区 | 熟女肥臀白浆大屁股一区二区 | 日本在线天堂 | 午夜999| 免费av不卡 | 噜噜噜视频 | 久久网站免费观看 | mm131国产精品| 国产成人精品无码免费看夜聊软件 | 国产香蕉一区二区三区 | 欧美视频一级 | 白石茉莉奈番号 | 日本丰满肉感bbwbbwbbw | 国产亚洲精品久久久久久打不开 | jizzjizz欧美69巨大 | 无码人妻精品中文字幕 | 秋霞视频一区二区 | 亚洲av电影一区二区 | 成人久久久久久久 | 不卡的av| 日韩极品一区 | 国产精视频 | 中文字幕免费看 | 成人一区三区 | 日本电影大尺度免费观看 | 午夜视频福利在线观看 | 国产日韩在线视频 | 亚洲成a人片| 影音先锋男人天堂 | 羞羞色院91蜜桃 | 香蕉视频免费网站 | 免费在线a | 国内自拍第二页 | 欧美成人高清在线 | 少妇天堂网 | 偷偷操不一样的久久 | 欧美日韩一区二区在线观看 | 欧美在线v| 国产精品免费电影 | 3d动漫精品啪啪一区二区下载 | 销魂奶水汁系列小说 | av在线第一页 | 污免费在线观看 | av免费成人| 久久精品国产大片免费观看 | 国产伦精品一区二区三区 |