2015-08-08 44 views
0

您好我有兩個陣列,輸入查詢數組值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第2位還有一定的差距,我希望把價值49從矩陣B到那個位置在陣列A.所以,最終的矩陣變成

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

讓我知道我可以編寫它在MATLAB中。謝謝,

+0

我不知道你是如何在Matlab中的數字數組中有一個字符串('x')。 – Nitish

+0

即只顯示缺失值。它是空的。而不是NaN,我把x放在那個地方。 – user962808

回答

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,下一步基本上是使用需要更換。

+1

值得指出的是,雖然你也可以做'A(isnan(A))= B(isnan(A))',你可以不做'A(A == NaN)= B(A == NaN)就像你可以用'-1'(或任何其他數字)做的那樣,因爲'NaN'不等於'NaN'。 –