Re: [運算] for loop改用matric寫法?
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):