matlab中如何交换矩阵的行或者列
4个回答
展开全部
用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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
额,楼主是想做什么啊?
要是想求矩阵的转置,直接有命令就可以了啊,加一个 ' 就能转置了。
>> 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
要是想求矩阵的转置,直接有命令就可以了啊,加一个 ' 就能转置了。
>> 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
追问
这个速度怎么样~~最优吗?
追答
额 速度就不知道了,你想找速度最优的就得找经验丰富的高手了,一般来说内置函数的速度是最优的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用permute函数就可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询