How to reshape array based on another array with nan values

6 visualizaciones (últimos 30 días)
I want to see if there is a specific function that will help me do this:
I have a 10x1 array.
a = [2 6 5 4 7 2 3 2 3 1];
I would like to reshape it to fit the same shape as logical array b (with nan values as 0).
b = [1 1 1 0;1 1 1 1;1 0 1 1]
Is there an easy way to reshape my array in that mold?

Respuesta aceptada

Bruno Luong
Bruno Luong el 2 de Nov. de 2020
Editada: Bruno Luong el 2 de Nov. de 2020
a = [2 6 5 4 7 2 3 2 3 1]
b = [1 1 1 0;1 1 1 1;1 0 1 1]
A = nan(size(b'));
A(b'==1) = a;
A = A.'

Más respuestas (1)

Abolfazl Chaman Motlagh
Abolfazl Chaman Motlagh el 2 de Nov. de 2020
b=logical(b);
A=zeros(size(b));
A(b)=a;
A(~b)=nan(sum(~b,'all'),1);
output:
A =
2 4 2 NaN
6 7 3 3
5 NaN 2 1
  2 comentarios
Abolfazl Chaman Motlagh
Abolfazl Chaman Motlagh el 2 de Nov. de 2020
Editada: Abolfazl Chaman Motlagh el 2 de Nov. de 2020
or just
b=logical(b);
A=nan(size(b));
A(b)=a;
Michael Burnett
Michael Burnett el 2 de Nov. de 2020
Lol, I'm quite new to MATLAB, so this is very helpful. Thanks

Iniciar sesión para comentar.

Categorías

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

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by