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