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

1 view (last 30 days)
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.

Accepted Answer

Dyuman Joshi
Dyuman Joshi on 2 Nov 2021
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 Comments
Dyuman Joshi
Dyuman Joshi on 3 Nov 2021
Edited: Dyuman Joshi on 3 Nov 2021
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.

Sign in to comment.

More Answers (1)

Yongjian Feng
Yongjian Feng on 2 Nov 2021
reshape(A, 8, 2)'
  2 Comments
Yongjian Feng
Yongjian Feng on 2 Nov 2021
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)'

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!