找回密码
 注册
查看: 319|回复: 3
打印 上一主题 下一主题

找到矩阵中相同元素并且找到它所在的行(或者是位置)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-4-15 10:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的
% e, Z$ y6 b/ z" [G=[9        10
$ d1 v4 O* u- _2 a4        5
0 Q5 O4 b7 ~% ?, Q14        13; {: L+ m( Q$ N/ f( ?6 |
3        4
& _; ]; d7 F! u! y# R$ @( W; h8 v13        122 c7 K6 y7 G. S: m$ m8 S, r
11        10! q3 M8 X+ y! k0 z, G. h, ?
7        9]+ \+ \: i! ~' y+ @

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的  v# R/ R8 J1 r" B  {% W
[a,b1]=unique(G,'first');
2 ~4 H) g; U/ Y' I[a,b2]=unique(G,'last');
$ b* d% k' [; n% i[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));! m5 p: A; ^( Y. z
[a b]'% b) U' G  |) M6 t; p! P/ i" u, t

$ N. `  O' Z% m9 n9 ?" g& c+ n
) ^4 V8 k+ O, l  }9 Q: X% dans =0 r5 E9 t  `2 t% [9 N# n

- a# p& K* S3 B# r( n' {1 ~     1     1     0     0     1     0     0, v4 {) m$ Z5 f2 B; ~
     7     4     0     0     3     0     03 @- X4 H1 i+ z7 K+ X

( n' Y& a# [$ R$ P第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。- }) L& b; ~7 d9 v& W! }; i, c! e
或者  n+ y3 ]8 |( y6 G) ]1 k& m" {2 f
[find(a==1) b(find(b>0))]; I! L; b1 d5 k7 N- d3 {
ans =
1 }- U: _& i/ c# c& _+ p* Z
4 F9 W+ R9 p3 E7 q     1     7! |/ f, `, P: e8 n  K$ K# i& i
     2     4
% a& ?; K# o2 p7 C: a9 l     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);
8 p2 X- U0 E0 aloc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-1 13:05 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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