Merge two matrices taking non-Null values

4 次查看(过去 30 天)
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?

采纳的回答

madhan ravi
madhan ravi 2019-2-14
C=zeros(size(A));
C(:,~all(isnan(A)))=A(:,~all(isnan(A)));
C(:,~all(isnan(B)))=B(:,~all(isnan(B)));

更多回答(1 个)

Stephen23
Stephen23 2024-4-4
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>

类别

Help CenterFile 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