Info

# How do you rearragne a matrix?

1 view (last 30 days)
KieranSQ on 14 Aug 2019
Closed: MATLAB Answer Bot on 20 Aug 2021
I am trying to vectorise a matrix of by using the data:
AN=[0,0.500000000000000,0,0.500000000000000,0.500000000000000,0,0,0.500000000000000,0,0.500000000000000,1,0.500000000000000,0,0.500000000000000,0.500000000000000,0.500000000000000,1,0.500000000000000,0.500000000000000,1,1,0.500000000000000,1,1;0,0,0.500000000000000,0,0.500000000000000,0.500000000000000,0.500000000000000,0.500000000000000,1,0.500000000000000,0.500000000000000,1,1,0.500000000000000,1,0,0,0.500000000000000,1,0.500000000000000,1,0.500000000000000,0,0.500000000000000]
Then I want to produce a 2x16 matrix where by
TEMP = [AN(1,3:3:end)-AN(1,1:3:end),AN(2,3:3:end)-AN(2,1:3:end);AN(1,2:3:end)-AN(1,1:3:end),AN(2,2:3:end)-AN(2,1:3:end)]
gives me a 2x16 matrix with the first two rows (1:2,:) being matrix 1 and the next set (3:4,:) being matrix 2 and so on. I have tried reshape but have failed to get this working. I want something like this, where 1) is the matrix number:
0 0.5
0.5 0
-0.5 0.5
0 0.5
. .
. .
. .
0.5 0
0.5 -0.5
Any advice would be appreciated. I am trying to avoid for loops for speed as my matricies become extremely large.

Athul Prakash on 19 Aug 2019
After the 2 lines of code above, use
res = reshape(TEMP, [16 2])
See the documentation here:
(The code shown above produces the exact same output you mentioned in your question.)