我有一段代碼,在這裏我需要簡化,因爲它大大增加了我的腳本的運行時間:如何在Matlab中矢量化這些嵌套的for-loops?
size=300;
resultLength = (size+1)^3;
freqResult=zeros(1, resultLength);
inc=1;
for i=0:size,
for j=0:size,
for k=0:size,
freqResult(inc)=(c/2)*sqrt((i/L)^2+(j/W)^2+(k/H)^2);
inc=inc+1;
end
end
end
C,L,W和H都是常數。當大小輸入超過400時,運行時間太長而無法等待,我可以通過千兆字節來觀看我的磁盤空間耗盡。有什麼建議?
謝謝!
我可以做的第一件事是預先確定:'freqResult =零(1,size^3);' – Marcin
我忘了提及我預先分配這些語句:'resultLength =(size + 1)^ 3; freqResult =零(resultLength,1);'我認爲你的排序是正確的。 – jephex