在MATLAB中输入数组值

在MATLAB中输入数组值,matlab,matrix,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中编写代码。谢谢,您可以使用数组索引轻松地完成此操

嗨,我有两个数组

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中编写代码。谢谢,

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

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
的索引,下一步基本上进行所需的替换

我不确定在Matlab的数字数组中如何有一个字符串(
x
),这只是为了显示缺少的值。它是空的。我把x放在那个位置,而不是NaN。值得指出的是,虽然你也可以做
A(isnan(A))=B(isnan(A))
,但你不能做
A(A==NaN)=B(A==NaN)
,就像你可以做
-1
(或任何其他数字),因为
NaN
不等于
NaN