在Matlab中写短文,以便在每个位置获得最少两个向量

时间:2017-12-07 12:33:08

标签: matlab

我有以下代码:

for i=1:length(Z1)
    if Z1(i) < Z2(i)
        min_vec(i) = Z1(i)
    else
        min_vec(i) = Z2(i)
    end
end

我想知道是否还有更多&#34; matlab&#34;简短的写作方式来实现同样的目标?

1 个答案:

答案 0 :(得分:4)

您可以使用min功能:

如果您只对最小值感兴趣,则只需使用Z1Z2作为输入:

min_Z1_Z2=min(Z1,Z2)

如果你也想知道最小值为两个数组中的哪一个,你可以用两个参数作为输出调用min,并将两个数组作为输入传递给矩阵

[min_val,Z1_Z2]=min([Z1;Z2])

min_val中,您有最小值,Z1_Z212,如果最小值位于第一行或第二行,则为Z1Z2

Z1=randi([1 33],1,10)
Z2=randi([1 33],1,10)
min_Z1_Z2=min(Z1,Z2)
[min_val,Z1_Z2]=min([Z1;Z2])


>> Z1
Z1 =

   24   12   16   21   22   15   28    7   17   29

>> Z2
Z2 =

   27   26   23    2    5   10   25   23   29    9

>> min_val
min_val =

   24   12   16    2    5   10   25    7   17    9

>> Z1_Z2
Z1_Z2 =

   1   1   1   2   2   2   2   1   1   2