matlab中如何交换矩阵的行或者列

如题所述

1、如果是需要按列翻转的话,就输入下面的代码:

fliplr(A)。

2、如果是需要按交换首尾列的话,就输入下面的代码:

A(:,[1,end]) = fliplr(A(:,[1,end]))

3、如果是需要按行翻转的话,就输入下面的代码:

flipud(A)

4、然后就完成了。

温馨提示:内容为网友见解,仅供参考
第1个回答  2020-03-17

用permute函数就可以

函数功能:在MATLAB、FreeMat中,该函数按指定的向量来重新排列一个数组。

语法格式:

B = permute(A,order)

按照向量order指定的顺序重排A的各维,B中元素和A中元素完全相同,但由于经过重新排列,在A、B访问同一个元素使用的下标就不一样了,order中的元素必须各不相同。

扩展资料:

应用举例:

给定任一矩阵A,表达式

permute(A,[2 1]) 和A.'相同的。

比如:

A = [1 2; 3 4]

A =

1 2

3 4

permute(A,[2 1])

ans =

1 3

2 4

下面的代码排列三维数组:

X = rand(12,13,14);

Y = permute(X,[2 3 1]);

size(Y)

ans =

13 14 12

参考资料来源:百度百科-permute

本回答被网友采纳
第2个回答  推荐于2016-08-22
额,楼主是想做什么啊?
要是想求矩阵的转置,直接有命令就可以了啊,加一个 ' 就能转置了。
>> a=[1 2 3
4 5 6
7 8 9]
a'
ans =
1 4 7
2 5 8
3 6 9

若是只想转换某两行或列,找个中间量储存一下就行了啊,
调换第一列和第二列数据:
b=a(:,1);
a(:,1)=a(:,2);
a(:,2)=b;
a

a =
2 1 3
5 4 6
8 7 9追问

这个速度怎么样~~最优吗?

追答

额 速度就不知道了,你想找速度最优的就得找经验丰富的高手了,一般来说内置函数的速度是最优的。

本回答被提问者采纳
第3个回答  2018-03-06
用permute函数就可以

matlab中如何交换矩阵的行或者列
1、如果是需要按列翻转的话,就输入下面的代码:fliplr(A)。2、如果是需要按交换首尾列的话,就输入下面的代码:A(:,[1,end]) = fliplr(A(:,[1,end]))3、如果是需要按行翻转的话,就输入下面的代码:flipud(A)4、然后就完成了。

如何用matlab实现矩阵的行和列互换?
find(X):返回X中非零元素的索引(即行列位置)。3、实例演示:找出矩阵A中所有等于3的元素的行列位置 打开matlab,在命令窗口运行如下代码:>> A=[1 2 3 4 5;6 7 3 1 2]>> [m,n]=find(A==3)从运行结果可知,找到A中元素3的位置为:第1行第3列 和 第2行第3列。

matlab 中,怎么让一个矩阵按某一列排列,并且行也跟着变动?
在matlab中让矩阵按某一列排列,需要用到排序算法对某一列数据排序,然后在排序算法的if判断句中,依次交换矩阵两行内容。以题目中矩阵为例,可以利用冒泡法对第三列数据排序,实现程序如下:a=[5 7 8;4 6 1;8 0 7];n=length(a);b=[];for i=1:n-1 for j=1:n-i if(a(j,3)>a(...

matlab 中,怎么让一个矩阵按某一列排列,并且行也跟着变动?
1、打开MATLAB软件,可以使用ortrows函数,在命令行窗口内打入help sortrows,就会出现以下画面,就如下图所示,根据出现的提示进行下一步进程。2、有了函数之后,这时需要创建一个矩阵,矩阵a为3行3列,可以输入“sortrows(a,1)”,就会看到以下画面,如下图所示,这个函数是对整个矩阵按第一列进行升序...

matlab中如何交换矩阵的行或者列
要是想求矩阵的转置,直接有命令就可以了啊,加一个 '就能转置了。>> a=[1 2 3 4 5 6 7 8 9]a'ans = 1 4 7 2 5 8 3 6 9 若是只想转换某两行或列,找个中间量储存一下就行了啊,调换第一列和第二列数据:b=a(:,1);a(:,1)=a(:,2);a(:,2)=b;a a = 2 1 3 ...

matlab中转置符号怎么打
1、使用单引号',例如输入"A=[1 2 4;5 6 7]",然后输入A.',你会看到原矩阵由2行3列变为3行2列,矩阵的行和列发生了交换,这就是常规转置的效果。2、如果矩阵是实数,'和.'的效果是一样的,都是转置。但如果是复数矩阵,'表示转置,.'表示共轭转置,两者的结果在实数矩阵中是相同的。3...

求助Matlab如何让矩阵行交换更快速
你好。U是矩阵,交换k行和max_row行Matlab自己的函数是这样做的:U.x([k max_row],1:n) = U.x([max_row k],1:n); % swap rows 如果我的回答没能帮助您,请继续追问。您也可以向我们团队发出请求,会有更专业的人来为您解答。

matlab中矩阵交换两行是什么命令呀
提供一种个人认为更简单的方法a([n m],:)=a([m n],:),其中的mn就是你想交换的行。至于列交换:a(:,[m n])=a(:,[n m])。觉得该答案好的同学要记得点赞哦!

在matlab里A([1,2],:)=A([2,1],:)是什么意思?
在matlab里A([1,2],:)=A([2,1],:)的意思是将A矩阵的第二、一行的数据赋值给A矩阵的第一、二行的数据,也就是说,第一行的数据与第二行的数据互换,得到新的A矩阵。例如:A=magic(5)>>A([1,2],:)>>A([2,1],:)>>A([1,2],:)=A([2,1],:)...

matlab 单引号矩形转置是什么意思?
matlab中单引号 ' 表示矩形共轭转置,即交换矩阵的行列元素,同时保持每个元素的实部不变,虚部符号取反。对于实数矩阵,由于虚部为0,所以仅是交换矩阵的行列元素。示例如下:1、转置实数矩阵 在matlab命令窗口输入如下代码,可见A'使得矩阵A的行、列元素位置互相交换了。2、转置复数矩阵 在matlab命令窗口...

相似回答