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
2021-2-24
For anyone who is looking to swap an array:
Array = Array.';
btw sorry for reviving a dead thread.
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
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
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
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
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
B=A([2,1,3],[2,1,3]) % Your expected output
Regards!
1 个评论
Walter Roberson
2022-2-24
I gave the indexing solution at https://www.mathworks.com/matlabcentral/answers/490529-matrix-rows-and-columns-swapping#comment_766334
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!