- The number of elements can't change, meaning the product of the dimensions of your array have to exactly match the product of the dimensions of your array.
- Each row/column will have the same number of elements (unless you want to get into cell arrays)
How to repshape array to matrix with different length of each row ?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Willim
el 22 de Mzo. de 2020
Comentada: Willim
el 22 de Mzo. de 2020
Lets assume we have array M with size 1*100
M= [1 2 3 4 5 6 7 8 9 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 9 2 ....]
I need to rephase it to B matrix that have 12 rows with max column 9
B = [1 2 3 4 5 6 7 8 9 ; 0 1 1 1 1 1 1 1 NAN ; 1 1 2 2 2 2 2 2 9 2; ... etc]
if we notice the first row is 1*9
second row is 1*8
third row is 1*10
and so on until we fill all the 12 rows. The sizes for the rows [9 8 10 8 9 8 8 8 8 9 8 7]
I just make up this example becuase my array is too long and I need to divid it depend on three numbers which is 28, 31,30
I tried to make if loop to implmemt it but I cannot it's completely worng.
0 comentarios
Respuesta aceptada
Cris LaPierre
el 22 de Mzo. de 2020
6 comentarios
Cris LaPierre
el 22 de Mzo. de 2020
Editada: Cris LaPierre
el 22 de Mzo. de 2020
Here's a sample assuming the vector is 1x100
% Create dummy data
test = randi(20,[1 100]);
brks = [9 8 10 8 9 8 8 8 8 9 8 7]
ind = [0 cumsum(brks)]
% preallocate vector with NaNs
matrix = nan([12 max(brks)])
for r = 1:length(brks)
matrix(r,1:brks(r)) = test((ind(r)+1):ind(r+1));
end
Más respuestas (0)
Ver también
Categorías
Más información sobre Resizing and Reshaping Matrices 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!