How do I add NaNs to each of a set of vectors of different lengths to make them all the same length please?

14 visualizaciones (últimos 30 días)
I have 13 columns that I'd like to put into a matrix, but they are different lengths. I can add NaN to them to make them the same length; if the max length is say 5000, how do I add NaNs to the others to make them all 5000 please?

Respuesta aceptada

Walter Roberson
Walter Roberson el 18 de Ag. de 2016
Matrix = nan(5000,13);
Matrix(1:length(FirstVariable), 1) = FirstVariable;
Matrix(1:length(SecondVariable), 2) = SecondVariable;
and so on.
If the values were in a cell array then there would be other methods available as well.

Más respuestas (2)

Azzi Abdelmalek
Azzi Abdelmalek el 18 de Ag. de 2016
Editada: Azzi Abdelmalek el 18 de Ag. de 2016
v1=(1:5)';
v2=(1:8)';
v3=(1:7)'
n=10
A={v1 v2 v3 }
out=cell2mat(cellfun(@(x) [x;nan(n-numel(x),1)],A,'un',0) )
  1 comentario
Bojie Sheng
Bojie Sheng el 26 de Sept. de 2019
Hi how can I add nan at the end of each row, not each coloum. For example:
v1=(1:5);
v2=(1:8);
v3=(1:7);
n=10;
A={v1; v2; v3; };
How to use cell2mat?

Iniciar sesión para comentar.


Michel Nieuwoudt
Michel Nieuwoudt el 18 de Ag. de 2016
Thank you for your answer, however, I'm not sure I understand the last line. (I am still learning!)

Categorías

Más información sobre Logical en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by