Borrar filtros
Borrar filtros

how to make all vectors to equal size for a cell array.

1 visualización (últimos 30 días)
Sandhu
Sandhu el 10 de Oct. de 2011
Editada: per isakson el 1 de Dic. de 2017
hi, i have a cell array of z{k}, it has totally 60 cells. which are diffident size in columns. so while i am trying to plot all arrays data in a single plot,[plot(z{1}) it works for one cell.] it says all vectors must have same size.
plot(z{:})
??? Error using ==> plot
Vectors must be the same lengths.
so, i want to make equal size of vectors by placing zeros. so any one can please help me.

Respuesta aceptada

Fangjun Jiang
Fangjun Jiang el 10 de Oct. de 2011
It might be easier using a for-loop, with hold on;
figure;hold on;
for k=1:length(z)
plot(z{k});
end

Más respuestas (1)

Laura Proctor
Laura Proctor el 10 de Oct. de 2011
lv = max(cellfun(@length,z));
za = zeros(1,lv);
for idx = 1:length(z)
cellVal = z{idx};
if length(cellVal) < lv
z{idx} = za;
z{idx}(1:length(cellVal)) = cellVal;
end
end
  2 comentarios
Sandhu
Sandhu el 10 de Oct. de 2011
tnq very much for help. it also works. tnx alot.
Mansour Aljohani
Mansour Aljohani el 20 de Ag. de 2015
Thank you so much Laura

Iniciar sesión para comentar.

Categorías

Más información sobre Elementary Math 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