我想优化一些循环代码,如下所示。我的代码使用大矩阵,必须进行优化。请帮帮我。
示例一:期待布尔结果:
m=zeros(100,100);
r=rand(100,100);
for i=1:100
for j=1:100
if(r(i,j)<0.3 || r(i,j)>0.7)
m(i,j)=1;
else
m(i,j)=0;
end
end
end
示例二:期待非布尔结果
m=zeros(100,100);
r=rand(100,100);
for i=1:100
for j=1:100
if(r(i,j)<0.3 || r(i,j)>0.7)
m(i,j)=0.035;
else
m(i,j)=0;
end
end
end
答案 0 :(得分:2)
矢量化:
m = r<0.3 | r>0.7;
这会产生boolean
结果。您可能希望将m
转换为double
:m = double(m);
。
答案 1 :(得分:0)
示例1:Luis Mendo's回答
r=rand(100,100);
m = r<0.3 | r>0.7;
示例2:
m(100,100) = 0;
r=rand(100,100);
m(r<0.3 | r>0.7) = 0.035;