有没有办法在matlab中交换两列,使得它可以在一个语句中完成?我知道A(:,[i,j])=A(:,[j,i])
可以完成这项工作。但我希望它的格式为swap_column(A, i, j)
。有没有这种内置或简单的操作只使用内置的?在matlab中交换两列矩阵
2
A
回答
2
两种可能性:
如果您同意将
A=swap_cols(A,i,j);
如果你想要一个“经营者”不具有输出参数般的功能,那么您只需编写一个函数function A = swap_cols(A,i,j) assert(i > 0 && i < size(A,2) && j > 0 && j < size(A,2)); A(:,[i j]) = A(:,[j i]);
,那么你可能想要类似:
function swap_cols(Astr,i,j) m = evalin('caller', sprintf('size(%s,2);', Astr)); assert(i > 0 && i < m && j > 0 && j < m); evalin('caller', sprintf('%s(:,[%d %d] = %s(:,[%d,%d]);', Astr, j, i, Astr, i, j));
你叫与名矩阵的此功能,而不是矩阵本身:
swap_cols( 'A',I,J);
干杯!
+1
+1。我喜欢创新的字符串接受函数,尽管这真是一个过度杀伤力。 –
+0
@EitanT过度使用'inputname'而不是'Astr' ;-) – Shai
2
置换做这项工作在Matlab
A = permute(A,[2 1]);
相关问题
- 1. 矩阵的随机交换列:Matlab的
- 2. MATLAB交换两个不同矩阵的列
- 3. 在MATLAB中转换矩阵
- 4. 如何在MATLAB中交换矩阵的行和列
- 5. 更改matlab中矩阵的两列
- 6. Matlab - 矩阵阵列
- 7. MATLAB:3D矩阵单元阵列转换
- 8. MATLAB矩阵变换
- 9. 如何将列矩阵转换为行矩阵在MATLAB
- 10. matlab中的置换矩阵
- 11. 矩阵在matlab中的交集?
- 12. 在Matlab中Rowwise 2维矩阵相交
- 13. 如何在matlab中从6列的矩阵中提取两列
- 14. Matlab的变换2D矩阵3D矩阵
- 15. 在matlab中合并两个矩阵
- 16. 在Matlab中比较两个矩阵
- 17. 在Matlab中连接两个矩阵
- 18. 循环阵列矩阵matlab
- 19. 矩阵在Matlab中
- 20. 在Matlab中将Iplimage转换为矩阵或阵列
- 21. Matlab:如何在矩阵中转换单元阵列
- 22. 如何在MATLAB中将阵列向量转换为矩阵
- 23. MATLAB to Python转换,矩阵和列表
- 24. 如何在MATLAB中交换矩阵的一组行?
- 25. 矩阵在matlab中的转换函数
- 26. 矩阵矩阵在Matlab中的数组?
- 27. 如何在MATLAB中将灰度矩阵转换为RGB矩阵?
- 28. 在Matlab中将双矩阵转换为整数矩阵
- 29. 在MATLAB矩阵
- 30. Matlab的:替换矩阵值
有什么不对A(:[I,J])= A(:[J,I])?它快速而优雅。 –
这是唯一的方法? –
为什么你需要一个'builtin'函数?那么'A(:,[i,j])= A(:,[j,i])'是否不足以满足您的需求? – slayton