Split a row into several rows
27 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Olu adroit
el 14 de En. de 2016
Comentada: Olu adroit
el 14 de En. de 2016
Hi all, I am trying to split a single-row matrix say for example
A = [1,2,3,4,17,18,19,20,33,34,35,36,49,50,51,52,65,66]
into a multiple-row matrix B, the maximum number of columns in B being 5. I would expect to get something like
B = [1,2,3,4,17;18,19,20,33,34;35,36,49,50,51;52,65,66]
I tried using the reshape function as below but it's giving an error saying
Product of known dimensions, 5, not divisible into total number of elements, 18
Please any suggestion would be appreciated.
%
% I would like to get
% B = 1 2 3 4 17
% 18 19 20 33 34
% 35 36 49 50 51
% 52 65 66
%
% code
A = [1,2,3,4,17,18,19,20,33,34,35,36,49,50,51,52,65,66];
B = reshape(A, 5, []);
0 comentarios
Respuesta aceptada
Stephen23
el 14 de En. de 2016
Editada: Stephen23
el 14 de En. de 2016
A matrix cannot have gaps or missing values: every row must be the same length, just as every column must too. So you will have to join some values onto A before reshaping it:
>> N = 5;
>> reshape([A,nan(1,N-mod(numel(A),N))],[],N)
ans =
1 17 33 49 65
2 18 34 50 66
3 19 35 51 NaN
4 20 36 52 NaN
2 comentarios
Más respuestas (1)
Ilham Hardy
el 14 de En. de 2016
The error message indicates the error very clear. What will be the dimension of the B matrix then? 5x4.9 matrix?
Unless you pad the A matrix beforehand with
A = [A,NaN,NaN];
the reshape command will not works (obviously).
0 comentarios
Ver también
Categorías
Más información sobre Logical 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!