查看: 138|回复: 4|关注: 0

[已解决] 将矩阵中不同行中有相同元素的行找出来,并只留下第一行,其余删掉,输出处理后的矩阵

[复制链接]

新手

13 麦片

财富积分


050


9

主题

20

帖子

0

最佳答案
比如:A=[ 1 3 5
                2 5 3
                2 1 7
                3 3 9
                2 4 6];
处理后变为:
A=[ 1 3 5
      2 5 3
      3 3 9];

论坛优秀回答者

权威

9056 麦片

财富积分



9

主题

1万

帖子

1986

最佳答案
  • 关注者: 486
发表于 2019-3-13 10:35:53 | 显示全部楼层 |此回复为最佳答案
  1. [~,index]=unique(A(:,1))
  2. A=A(index,:)
复制代码

如果需要第二列,第三列也这样,从剩下的A中再做第二列,第三列即可。

新手

13 麦片

财富积分


050


9

主题

20

帖子

0

最佳答案
 楼主| 发表于 2019-3-13 10:56:26 | 显示全部楼层
jingzhaos 发表于 2019-3-13 10:35
如果需要第二列,第三列也这样,从剩下的A中再做第二列,第三列即可。

谢谢!我用matlab试了试,很好用。
请问[~,index]是什么用法啊,为什么index代表的是矩阵的行而不是列?”~“代表什么呢?麻烦您解释一下。

论坛优秀回答者

权威

9056 麦片

财富积分



9

主题

1万

帖子

1986

最佳答案
  • 关注者: 486
发表于 2019-3-13 14:23:57 | 显示全部楼层
OPQ1076063483 发表于 2019-3-13 10:56
谢谢!我用matlab试了试,很好用。
请问[~,index]是什么用法啊,为什么index代表的是矩阵的行而不是列? ...

~:这个地方还有一个输出,输出的结果,这是用不到,用~代替,这是matlab的规定
index:因为后面是A(:,1),取得是一列数据,索引index代表的是行,如果[~,index]=unique(A(1,:)),那就代表列了。

新手

13 麦片

财富积分


050


9

主题

20

帖子

0

最佳答案
 楼主| 发表于 2019-3-13 14:32:43 | 显示全部楼层
jingzhaos 发表于 2019-3-13 14:23
~:这个地方还有一个输出,输出的结果,这是用不到,用~代替,这是matlab的规定
index:因为后面是A(:,1) ...

明白了,[a,b]=unique(A(:,1))中,a输出第一列中不同的元素,b输出元素a对应的行。谢谢了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表