How to split an array

Hi,
Say I have an array of index variables gained from sorting out data:
i.e. row = [1 2 3 4 6 7 8 10 11 12]
I'd like to split this array into different columns at where its not incrementing consecutively.
I've made a start
for i=1:length(row)-1;
if row(i+1) ~= row(i)+1;
{split row array into a different column}
end
end
Essentially I want my output to look like:
output = [1 2 3 4; 6 7 8; 10 11 12]

Respuestas (2)

Walter Roberson
Walter Roberson el 26 de Mzo. de 2014

0 votos

You cannot do that. Numeric arrays in MATLAB must have the same number of rows and columns for all entries.
You could use a cell array but not a numeric array.

1 comentario

Isuru
Isuru el 26 de Mzo. de 2014
You're right. How would I do this using a cell array?

Iniciar sesión para comentar.

Azzi Abdelmalek
Azzi Abdelmalek el 26 de Mzo. de 2014

0 votos

a= [1 2 3 4 6 7 8 10 11 12]
s=[[2 diff(a)]==1 0]
out=arrayfun(@(x,y) a(x:y),strfind(s,[0 1]),strfind(s,[1,0]),'un',0);
celldisp(out)

Categorías

Más información sobre Operators and Elementary Operations en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 26 de Mzo. de 2014

Respondida:

el 26 de Mzo. de 2014

Community Treasure Hunt

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

Start Hunting!

Translated by