使用逻辑向量和逻辑2D数组(MATLAB)

时间:2016-05-11 21:57:11

标签: matlab vector

我使用randi有两个维度数组[1 * 10]。

a1 = randi(100,1,10);
a2 = randi(100,1,10);

现在我需要创建第三个数组(比如a3),它包含两个早期数组中最小的数字。 我可以使用for循环来完成它,但是如何使用逻辑向量并且没有循环来解决它?

1 个答案:

答案 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)