Re: [問題]對矩陣每個元素取次方的計算速度已回收

看板MATLAB作者 (凡人昱)時間16年前 (2009/04/12 10:13), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串3/3 (看更多)
感謝你的實驗 從你的結果看來,我猜是.^2比.^(其他數字)的運算速度快 從你的五種作法來看,乘以"非2"次方的次數分別為 2 2 2 4 1 而所用的時間比例也差不多是 2:2:2:4:1 應該不只是巧合吧.... 所以...是可以用.^2算的就用.^2 可以用.*的就用.* 個人的推測囉 ※ 引述《rmbrick (找人下棋....)》之銘言: : 用下面的code來實驗.^的運算速度 : T=zeros(100,5); : A=ones(100,100); : ave=zeros(1,5); : A=7*A; : for i=1:100 : t=zeros(1,4); : t(1)=cputime; : (((A.^2).^5).^2).^5; : t(1)=cputime-t(1); : t(2)=cputime; : (A.^10).^10; : t(2)=cputime-t(2); : t(3)=cputime; : (A.^50).*(A.^50); : t(3)=cputime-t(3); : t(4)=cputime; : (A.^25).*(A.^25).*(A.^25).*(A.^25); : t(4)=cputime-t(4); : t(5)=cputime; : A.^100; : t(5)=cputime-t(5); : T(i,:)=t; : ave=ave+t; : end : ave/100 : ave/100 目的是看平均值 : 質因素 sqrt 二分相加 四分相加 原始情況 (這邊是指數的關係 : 100次平均 0.4206 0.4139 0.4214 0.8530 0.22194 單位:秒 : 從數據來看 似乎是直接使用.^100可以達到最快的速度 : 顯然跟原po的實驗結果有差異!! : 這邊猜測跟CPU的運算數量和記憶體的大小有關 : 也可能是三維矩陣的運算和一般matrix的運算不同 : 實驗是用intel Q6600 2.5G : ram 4G -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.40.64.113
文章代碼(AID): #19uKuxW_ (MATLAB)
文章代碼(AID): #19uKuxW_ (MATLAB)