matlab - 如何在MATLAB中对矩阵中每一行的列进行置换?
问题描述
我有一个矩阵
A = [1,2;3,4];
我想生成一个新矩阵 B,其中包含每行列的所有排列。
B = [1,2;2,1;3,4;4,3]
是否有单线解决方案?
解决方案
我只能想到一个包含单元阵列的解决方案,因此我不确定这是否“有效”。另外,看看.perms
% Input.
A = [1, 2; 3, 4]
% Expected output.
B = [1, 2; 2, 1; 3, 4; 4, 3]
% Calculate output.
C = sortrows(cell2mat(cellfun(@(x) perms(x), mat2cell(A, ones(1, size(A, 1)), 2), 'UniformOutput', false)))
A =
1 2
3 4
B =
1 2
2 1
3 4
4 3
C =
1 2
2 1
3 4
4 3
推荐阅读
- php - 如何在代码点火器中从我的网址中删除问号
- python - 如何使用 PyTorch 0.4.0 从 numpy 数组中使用 requires_grad=True 制作 FloatTensor?
- wordpress - 如何恢复wordpress备份?
- last.fm - 使用 Last.fm api 获取歌曲元数据
- python - 如何预处理音频数据以输入神经网络
- c# - OAuth 2 脚本错误
- php - 使用 PDO PHP 将 CSV 导入 MySQL 数据库
- angular - 从 Angular 5 到 Lumen Rest API 的 HTTP 请求
- javascript - Javascript:resquestAnimationFrame 作为对象属性
- r - R比较数据框中两个因素的值并在第三个中获得结果