could anyone help me how to pair the numbers in the desired manner as shown below

조회 수: 1 (최근 30일)
A=1:16
R = reshape(A,4,[])
After executing the above command results in
R =
1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
Now I want to group the numbers in the desired manner
1 2 3 4 5 6 7 8
12 11 10 9 16 15 14 13
Could anyone please help me on this.

채택된 답변

Dyuman Joshi
Dyuman Joshi 2021년 11월 2일
This looks a quite a unique manner. Anyways, try this
A=1:16;
R = reshape(A,4,[]);
[R(:,1)' R(:,2)'; flip(R(:,3))' flip(R(:,4))']
ans = 2×8
1 2 3 4 5 6 7 8 12 11 10 9 16 15 14 13
  댓글 수: 3
Dyuman Joshi
Dyuman Joshi 2021년 11월 3일
편집: Dyuman Joshi 2021년 11월 3일
I am not sure what you mean by combining all into a single code, so here's my approach -
for i=[3 4 6 9 12]
z=1:4*i;
y=reshape(z,[],4);
R=[y(:,1)' y(:,2)'; flip(y(:,3))' flip(y(:,4))']
end
R = 2×6
1 2 3 4 5 6 9 8 7 12 11 10
R = 2×8
1 2 3 4 5 6 7 8 12 11 10 9 16 15 14 13
R = 2×12
1 2 3 4 5 6 7 8 9 10 11 12 18 17 16 15 14 13 24 23 22 21 20 19
R = 2×18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 27 26 25 24 23 22 21 20 19 36 35 34 33 32 31 30 29 28
R = 2×24
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 36 35 34 33 32 31 30 29 28 27 26 25 48 47 46 45 44 43 42 41 40 39 38 37
Here R will be modified in each iteration. You can modify the code according to however you want to proceed.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Yongjian Feng
Yongjian Feng 2021년 11월 2일
reshape(A, 8, 2)'
  댓글 수: 2
Yongjian Feng
Yongjian Feng 2021년 11월 2일
Whoops. Didn't pay attention to the order of the second row.
Then we need to use flip most likely.
A=1:16
R = reshape(A,4,[]);
R(:, 3) = flip(R(:, 3));
R(:, 4) = flip(R(:, 4));
ret = reshape(R, 8, 2)'

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by