0
有沒有什麼辦法可以避免在Matlab中使用下面的for循環? 'M'和'B'是100乘100對稱矩陣,它的元素是已知的。避免在Matlab中循環
p1=rand(100,100).*25;
M=p1+p1';
p2=rand(100,100).*25;
B=p2+p2';
dr=0.2;
R=2 *dr;
for o=1:50
center= R*o;
MX= abs(M-center)<dr;
mm=MX.*B;
countB = [countm,sum(mm(:))/sum(mm(:)~=0)];
count = [count,sum(MX(:))];
end
*此for循環在另一個循環中重複,避免使用它的目的是使代碼更快。
'count'需要做什麼?你可以爲'M'和'B'添加一個小樣本,以便我們可以運行它嗎? – 10a
是的,我做到了。 @ 10a –
'countm'和'count'在您將其分配到循環中之前都不存在,因此此代碼將出錯。另外:***不要***增長數組,而是簡單地預先分配它們,所有的麻煩可能會消失,因爲這最像是讓代碼變慢。循環不再像過去那樣糟糕,TMW的最新發展使它們與R2016b以來的矢量化幾乎相當。 – Adriaan