我有一个跟随矩阵
aa =
245.2708 2.6912 21.0000
245.2778 2.3969 21.0000
245.2847 4.9097 21.0000
245.2917 5.5113 21.0000
245.2986 6.9260 21.0000
245.3056 20.5392 21.0000
245.3403 40.6676 21.0000
245.3472 28.8638 21.0000
245.3542 45.3048 21.0000
245.3611 47.9512 21.0000
245.3681 NaN NaN
245.3889 15.3675 21.0000
245.3958 15.0250 21.0000
Time =aa(:,1);
x =aa(:,2);
y =aa(:,3);
现在我需要创建一个新的向量'z',当'x'大于'y'时它应包含'x'的所有值,如果'x'小于'y',则填充'z' '与'y'。 'z'的输出看起来如下。
z =
21
21
21
21
21
21
40.6676
28.8638
45.3048
47.9512
NaN
21
21
答案 0 :(得分:5)
z = max(x, y)
小心NaN
,因为它既不低也不高,也不等于任何数字。因此,例如,如果x
在NaN
没有y
的位置x
,那么{{1}}中的值将始终被选中。
答案 1 :(得分:1)
如果您希望输出为NaN
,如果任一值为NaN
,您可以使用
z = x+y-min(x,y);
答案 2 :(得分:0)
z = zeros(size(x));
idx_x = x>y;
idx_y = x<y;
z(idx_x) = x(idx_x);
z(idx_y) = y(idx_y);
请注意,这并不考虑x
和y
何时相等,而且我不确定您是否可以将数字与NaN
进行比较。