How to restructure/reshape matrix?

10 visualizaciones (últimos 30 días)
Dionysius Bryan
Dionysius Bryan el 5 de Oct. de 2018
Editada: James Tursa el 5 de Oct. de 2018
Hi, I am still novice using Matlab I wonder if it's possible to restructure matrix from :
a=[1
2
4
5
7
8
10
9
12
19
22
21]
to be like this:
a= [1 2 4;
2 4 5;
4 5 7;
5 7 8;
7 8 10;
8 10 9;
10 9 12;
9 12 19;
12 19 22;
19 22 21]
Thank You

Respuestas (1)

Stephen23
Stephen23 el 5 de Oct. de 2018
Editada: Stephen23 el 5 de Oct. de 2018
This is easy with hankel, some indexing, and transpose:
>> a = [1,2,4,5,7,8,10,9,12,19,22,21];
>> c = hankel(a(1:3),a(3:end)).'
c =
1 2 4
2 4 5
4 5 7
5 7 8
7 8 10
8 10 9
10 9 12
9 12 19
12 19 22
19 22 21
And compared against your requested output:
>> b = [1,2,4;2,4,5;4,5,7;5,7,8;7,8,10;8,10,9;10,9,12;9,12,19;12,19,22;19,22,21]
b =
1 2 4
2 4 5
4 5 7
5 7 8
7 8 10
8 10 9
10 9 12
9 12 19
12 19 22
19 22 21
>> isequal(b,c)
ans = 1

Categorías

Más información sobre Creating and Concatenating 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!

Translated by