Build an array with different column lengths

16 visualizaciones (últimos 30 días)
matlabuser12
matlabuser12 el 15 de Ag. de 2016
Editada: Matt J el 15 de Ag. de 2016
Have one large data set (3333x1 double) and am trying to section out rows based on certain index values. If I have say 10 index pairs (beginning and end row) that I want to section out,each with different lengths how can I build one new nx10 matrix?
I keep getting subscripted assignment mismatches and similar errors when I try things like:
for i = 1:length(indices)
newData(:,i) = olddata(indexstart(i):indexstop(i),:);
end

Respuestas (1)

Matt J
Matt J el 15 de Ag. de 2016
Editada: Matt J el 15 de Ag. de 2016
Usually you would store such a result as a cell array,
newData=cell(1, length(indices));
for i = 1:length(indices)
newData{i} = olddata(indexstart(i):indexstop(i));
end
If it needs to be a numeric array, you need to decide what will go in the missing spots.
  4 comentarios
matlabuser12
matlabuser12 el 15 de Ag. de 2016
I get a 1x10 array with each cell having one column in it. do I need to nest this newdata into another cell array or something?
Matt J
Matt J el 15 de Ag. de 2016
Editada: Matt J el 15 de Ag. de 2016
Your needs, and what you plan to do with this data later, are completely hidden from me. However, I can't imagine many situations where you couldn't use the 1x10 cell array as is.

Iniciar sesión para comentar.

Categorías

Más información sobre Matrices and Arrays 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