我使用randi
有两个维度数组[1 * 10]。
a1 = randi(100,1,10);
a2 = randi(100,1,10);
现在我需要创建第三个数组(比如a3
),它包含两个早期数组中最小的数字。
我可以使用for
循环来完成它,但是如何使用逻辑向量并且没有循环来解决它?
答案 0 :(得分:3)
你必须使用逻辑向量吗?
如果没有,min([a1;a2])
就可以了。它查看矩阵并找到每列的最小值。所以,如果我们从你的两个向量构建矩阵,我们就可以了。
使用您在问题中指定的逻辑向量的Hacky方式出于某种原因:
smaller_ix = a1 < a2
v = zeros(1,10);
v(smaller_ix) = a1(smaller_ix)
v(~smaller_ix) = a2(~smaller_ix)