我有一个关于使用for和if循环的问题
如果我有这样的情况
我在数据矩阵a中有data_result R,其中a是问题的索引而b是答案
并且取决于数据M(x乘y),其中x = a
我有像
这样的代码for i = 1:a
if M(i) > constant 1
R(i) = a;
else if M(i) > constant 2
R(i) = b;
else
R(i) = c;
end
end
我只是想知道是否有任何可能的解决方案,以解决这个最小化循环和条件否则
答案 0 :(得分:0)
您可以使用>
或整个数组上的其他元素比较对所选元素进行“矢量化”更新,然后使用索引进行分配。测试返回布尔数组,您可以使用它来索引输入数组或具有相应维度的其他数组。
R = repmat(c, size(M));
% Do tests in order of increasing selectivity
R(M > 1) = a;
R(M > 2) = b;