Matrix rows and columns swapping

226 次查看(过去 30 天)
I want to completely change rows and column simultaneously (please see the picture attached)
Is there a function which can do this?
Thanks,
Rakesh
  2 个评论
Logan Hall
Logan Hall 2021-2-24
For anyone who is looking to swap an array:
Array = Array.';
btw sorry for reviving a dead thread.
Walter Roberson
Walter Roberson 2021-2-24
That does not solve the user's problem at all. The user needs the upper left corner (a 1 in their data) to go to the middle, but using .' would leave the upper left corner exactly where it is.

请先登录,再进行评论。

回答(3 个)

Walter Roberson
Walter Roberson 2019-11-11
There is no function that can do that simultaneously, at least not the first time.
For any given row and column exchange pattern, it is possible to pre-process the pattern so that doing the same exchange for multiple different arrays would take place simultaneously for that one matrix. Something like
temp = preprocess_exchange(rows_to_exchange, columns_to_exchange);
newA = A(temp);
newB = B(temp);
where preprocess_exchange is a function that would need to be written.
  2 个评论
Walter Roberson
Walter Roberson 2019-11-12
I should correct myself: you can do this with indexing.
>> A = [1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A([2 1 3],[2 1 3])
ans =
5 4 6
2 1 3
8 7 9

请先登录,再进行评论。


Akira Agata
Akira Agata 2019-11-12
I don't think rows and column can be randomly changed simultaneously.
There should be at least 2 steps, like this:
% Input 3-by-3 matrix
A = reshape(1:9,3,3)';
% Randomize rows and columns
A = A(randperm(3),:);
A = A(:,randperm(3));

Franco Garcia
Franco Garcia 2022-2-24
编辑:Franco Garcia 2022-2-24
You can actually do that easily with just proper indexing. According to the example in the attachment:
A=[1,2,3;4,5,6;7,8,9] % The input in your example
A = 3×3
1 2 3 4 5 6 7 8 9
B=A([2,1,3],[2,1,3]) % Your expected output
B = 3×3
5 4 6 2 1 3 8 7 9
Regards!

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品


版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by