matlab怎么对一个二维数组的第一行按数值大小排序,我希望第二行的各元素也跟着排序。

也就是第二行的新顺序是第一行造成的。... 也就是第二行的新顺序是第一行造成的。 展开
 我来答
匿名用户
2019-03-10
展开全部

matlab有一个sortrows(A,Dim)函数,是指按照矩阵A的某一列(Dim)进行排列,然后其余的列也相应跟着排序,就像excel 中按照某列排序并扩展选定区域一样。

你想要实现按行排序,只需将矩阵A转置后排序,再转置回来即可。如下:

A = [2 1 4 5; 1 2 3 4; 4 3 2 1];

也就是 A =

2     1     4     5

1     2     3     4

4     3     2     1

那么转置A' = 

2     1     4

1     2     3

4     3     2

5     4     1

B = sortrows(A',1);

B =  

1     2     3

2     1     4

4     3     2

5     4     1

再将B转置回来即对原来的A按行排序后的结果

C = B';

C =

1     2     4     5

2     1     3     4

3     4     2     1

司马刀剑
高粉答主

2019-03-09 · 每个回答都超有意思的
知道顶级答主
回答量:4.6万
采纳率:93%
帮助的人:7521万
展开全部
//#include "stdafx.h"//vc++6.0加上这一行.#include <iostream>using namespace std;int main(void){ double a[4][3]={{3,1,5},{0.3,0.5,0.1},{1,0,2},{0,1,1}},tmp; int i,j,k,l; for(i=0;i<3;i++){ for(k=i,j=k+1;j<3;j++) if(a[0][k]<a[0][j]) k=j; if(k!=i) for(l=0;l<4;l++){ tmp=a[l][k]; a[l][k]=a[l][i]; a[l][i]=tmp; } } for(i=0;i<4;i++){ for(j=0;j<3;cout << a[i][j++] << '\t'); cout << endl; } return 0;}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知不道42
2019-03-09 · TA获得超过629个赞
知道小有建树答主
回答量:200
采纳率:80%
帮助的人:153万
展开全部
没能明白你的问题。矩阵排序可以参考sort和sortrows函数,可以百度一下这两个函数的公用,应该能解决你的问题。
更多追问追答
追问

就是这样的效果
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式