Merge two matrices taking non-Null values

I have two matrices containing essentially duplicate data, except some values are Null in one but not the other, I need to take the non-Null values from each and combine them into one matrix.
e.g. combine A and B to make C:
A = [8 8 8 8 NaN;
32 32 25 31 NaN;
56 56 43 53 NaN;
81 80 60 76 NaN;
105 103 78 99 NaN;
129 127 95 122 NaN]
B = [8 NaN 8 8 8;
32 NaN 25 31 31;
56 NaN 43 53 53;
81 NaN 60 76 76;
105 NaN 78 99 99;
129 NaN 95 122 121]
C = [8 8 8 8 8;
32 32 25 31 31;
56 56 43 53 53;
81 80 60 76 76;
105 103 78 99 99;
129 127 95 122 121]
Does anyone know if there's a way I can do this?

 采纳的回答

C=zeros(size(A));
C(:,~all(isnan(A)))=A(:,~all(isnan(A)));
C(:,~all(isnan(B)))=B(:,~all(isnan(B)));

更多回答(1 个)

A = [8,8,8,8,NaN;32,32,25,31,NaN;56,56,43,53,NaN;81,80,60,76,NaN;105,103,78,99,NaN;129,127,95,122,NaN];
B = [8,NaN,8,8,8;32,NaN,25,31,31;56,NaN,43,53,53;81,NaN,60,76,76;105,NaN,78,99,99;129,NaN,95,122,121];
C = mode(cat(3,A,B),3)
C = 6x5
8 8 8 8 8 32 32 25 31 31 56 56 43 53 53 81 80 60 76 76 105 103 78 99 99 129 127 95 122 121
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

产品

版本

R2017a

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by