在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
。