Borrar filtros
Borrar filtros

Merge two matrices taking non-Null values

5 visualizaciones (últimos 30 días)
rosado
rosado el 14 de Feb. de 2019
Respondida: Stephen23 el 4 de Abr. de 2024
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?

Respuesta aceptada

madhan ravi
madhan ravi el 14 de Feb. de 2019
C=zeros(size(A));
C(:,~all(isnan(A)))=A(:,~all(isnan(A)));
C(:,~all(isnan(B)))=B(:,~all(isnan(B)));

Más respuestas (1)

Stephen23
Stephen23 el 4 de Abr. de 2024
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>

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by