Flipping a matrix diagonally
83 次查看(过去 30 天)
显示 更早的评论
I would like to flip a matrix that I have diagonally from left to right as shown in the image. Is there a command or a simple way to do this? The other two ends of my matrices have the correct values so I do not want them to move![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/676633/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/676633/image.jpeg)
0 个评论
采纳的回答
DGM
2021-7-7
编辑:DGM
2021-7-7
I'm assuming you want to flip the whole matrix diagonally
To flip about the southeast-northwest diagonal is just transpose:
A = magic(5)
A.'
So then flipping about the opposite diagonal is just a matter of flipping one axis:
fliplr(fliplr(A).')
2 个评论
DGM
2021-7-8
I don't see how that's possible with any rigid transformation like a flip/transpose/rotation. The fact that adjacent corners become opposite corners leads me to question what you expect the interior of the array to look like.
Consider:
A = [147 278;
457 13];
becomes
B = [457 147;
278 13];
B is basically A' with the top row flipped. What if there were more rows?
A = [147 156 278;
124 456 583;
457 46 13];
We could transpose and then ...? How do you half-flip a row?
B = [457 124 147;
??? ??? ???;
278 583 13];
I'm not really sure what this transformation is supposed to do. I mean anything is possible with interpolation, but the question is what it means.
更多回答(1 个)
KSSV
2021-7-7
A = rand(5) ;
n = size(A,1) ;
v = A(1:n+1:end) ;
A(1:n+1:end) = fliplr(A(1:n+1:end))
Also read about diag.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!