Re: [運算] for loop改用matric寫法?

看板MATLAB作者 (oversky0)時間13年前 (2012/05/28 22:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《captainVince (purple rain￾ ￾N￾ )》之銘言: : 請問一下 : 假設有一段code事降子 : for k=1:16 : for m=1:16 : A(k,m)=B(m)-C(k); : end : end : A是一個16x16 matrix : B, C是一個 1x16 Array : 可以不要用for loop就可以完成嗎? : 因為時間時再是太慢了... : 謝謝 在我的電腦上用 repmat 比先宣告 A 矩陣還慢, 而且 repmat 比較吃記憶體。 MATLAB Version 7.4.0.287 (R2007a) clear all; clc; N = 1000; B = rand(N,1); C = rand(N,1); tic; A1 = zeros(N,N); for k=1:N for m=1:N A1(k,m)=B(m)-C(k); end end t1 = toc % clear A1; tic; A2 = repmat(B.',N,1) - repmat(C,1,N); t2 = toc isequal(A1,A2) t1 = 0.0621 t2 = 0.1210 ans = 1 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.158.241
文章代碼(AID): #1FmumwB1 (MATLAB)
文章代碼(AID): #1FmumwB1 (MATLAB)