How to restructure/reshape matrix?

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

답변 (1개)

Stephen23
Stephen23 2018년 10월 5일
편집: Stephen23 2018년 10월 5일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2018년 10월 5일

편집:

2018년 10월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by