# how to extract n rows in a matrix column iteratively?

2 visualizaciones (últimos 30 días)
Kim Arnold el 3 de Mzo. de 2020
Comentada: Kim Arnold el 4 de Mzo. de 2020
i have a matrix A(15,1) looking like this
0.4218
0.9157
0.7922
0.9595
0.6557
0.0357
0.8491
0.9340
0.6787
0.7577
0.7431
0.3922
0.6555
0.1712
0.7060
I want to extract always 3 rows iteratively and put it in a cell,
In the first cell i want to have
0.4218
0.9157
0.7922
in the second cell i want to have
0.9595
0.6557
0.0357
and so on..., i would then end up with 5 cells as this {1,5}(3,1)
is there an easy way to do it without writing several for loops?
##### 0 comentariosMostrar -2 comentarios más antiguosOcultar -2 comentarios más antiguos

Iniciar sesión para comentar.

James Tursa el 3 de Mzo. de 2020
Editada: James Tursa el 3 de Mzo. de 2020
Depending on what you are doing downstream in your code, it may make more sense to simply reshape and then access the columns. E.g.,
B = reshape(A,3,[]);
then in your code use B(:,k) to access the k'th column
But if you really want/need the cell array approach then maybe something like this would suffice
B = mat2cell(A,3*ones(1,numel(A)/3));
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Kim Arnold el 4 de Mzo. de 2020
Thanks a lot, gives me exactly what i need!

Iniciar sesión para comentar.

### Más respuestas (1)

Andrei Bobrov el 3 de Mzo. de 2020
Editada: Andrei Bobrov el 3 de Mzo. de 2020
out = num2cell(reshape(A,3,[]),1);
or
out = accumarray(ceil((1:numel(A))'/3),A,[],@(x){x});
##### 1 comentarioMostrar -1 comentarios más antiguosOcultar -1 comentarios más antiguos
Kim Arnold el 4 de Mzo. de 2020

Iniciar sesión para comentar.

### Categorías

Más información sobre Matrix Indexing 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