Re: [問題]對矩陣每個元素取次方的計算速度已回收
感謝你的實驗
從你的結果看來,我猜是.^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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章