输入数组值MATLAB

时间:2015-08-08 17:38:51

标签: matlab matrix

嗨我有两个阵列,

A = [23 Nan 45 Nan Nan 67 50 100 110] and B = [24 49 70 71 72 90 100 120 109]

NaN表示存在一些差距。我想将矩阵B的元素放在A中的相同位置NaN。例如,在阵列A的第二个位置有一个间隙,我想把矩阵B的值49放到数组A中的那个位置。所以得到的A矩阵变为

A = [23 49 45 71 72 67 50 100 110]

让我知道如何在MATLAB中编写代码。谢谢,

1 个答案:

答案 0 :(得分:2)

使用数组索引可以非常轻松地完成此操作。

A = [23 NaN 45 NaN NaN 67 50 100 110]
B = [24 49 70 71 72 90 100 120 109]
all_nans = isnan(A)
A(all_nans) = B(all_nans)

,并提供:

A =

    23    49    45    71    72    67    50   100   110

all_nans包含所有NaNs的索引,下一步基本上执行所需的替换。