我有以下代码:
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;简短的写作方式来实现同样的目标?
答案 0 :(得分:4)
您可以使用min功能:
如果您只对最小值感兴趣,则只需使用Z1
和Z2
作为输入:
min_Z1_Z2=min(Z1,Z2)
如果你也想知道最小值为两个数组中的哪一个,你可以用两个参数作为输出调用min
,并将两个数组作为输入传递给矩阵
[min_val,Z1_Z2]=min([Z1;Z2])
在min_val
中,您有最小值,Z1_Z2
值1
或2
,如果最小值位于第一行或第二行,则为Z1
或Z2
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