Pad with Nan according to maximum row in cell

30 visualizaciones (últimos 30 días)
Cside
Cside el 27 de Oct. de 2019
Comentada: Tobias el 14 de Mzo. de 2023
Hi, I have a 1 x 8 cell (attached) and would like to cell2mat this matrix i.e to expand and show into one big numeric 97 x 8 array (97 being the maximum length of a cell array). I would also like to pad the ends of the smaller cell arrays with Nan to make all columns the same row length. How may I write for this?
Thank you!
  1 comentario
Stephen23
Stephen23 el 3 de Mzo. de 2023
Editada: Stephen23 el 3 de Mzo. de 2023
"How may I write for this?"
Rather than reinventing the wheel, you can simply download Jos' excellent PADCAT here:
and use it like this, where C is your cell array:
M = padcat(C{:})
This works automatically for vectors in either orientation.

Iniciar sesión para comentar.

Respuesta aceptada

Fabio Freschi
Fabio Freschi el 27 de Oct. de 2019
I keep all steps separated
% the data
A = {rand(47,1),rand(80,1),rand(97,1)};
% pad with NaNs
A = cellfun(@(x)[x(1:end); NaN(97-length(x),1)],A,'UniformOutput',false);
% make a matrix
A = cell2mat(A);
  3 comentarios
Fabio Freschi
Fabio Freschi el 2 de Mzo. de 2023
Joanne,
if I understand correctly your question, you must simply change everything that is row into column and vice versa
% the data
A = {rand(1,47);rand(1,80);rand(1,97)}; % <- note the semicolon, note the row/col excange in the data
% pad with NaNs
A = cellfun(@(x)[x(1:end) NaN(1,97-length(x))],A,'UniformOutput',false); % <- note the missing semicolon after x(1:end) and the row/col excange in NaN
% make a matrix
A = cell2mat(A);
Hope iot helps
Tobias
Tobias el 14 de Mzo. de 2023
Hi! Thank you for your answer, unfortunately i appears that for cells < max_t the function just adds another cell arrayto the end of it, with max_t size. Do you know how to circumvent this ?

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by