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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的7 Z" V  D% E1 R- ?# S! }5 V* ^% i
G=[9        10
+ c" z- R" H' v1 u) D& d4        5
  U  ^5 _0 ^( w' n& a14        13
* R* ^8 f2 u3 U+ H" T6 \- {3        4. j4 u' f3 v7 l% ?# V
13        127 @  J) O$ D4 P
11        10
9 p' f+ b9 o2 V$ @1 o7        9]
8 _' s6 h( S+ w5 J% j  S" n2 X" a& N

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的/ r: d/ P: o; ?! l" n: S3 b
[a,b1]=unique(G,'first');
  Y9 ?. |: s0 s[a,b2]=unique(G,'last');( D. Q$ O" B. n) v( |
[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));# {& F1 F8 w/ X9 N) i
[a b]'
& P) R& ^2 \- k9 g- P
4 \' w- _3 ~+ u5 U  q4 b1 s
. W% N, P/ @6 z2 d$ zans =+ u/ n, T& _7 t. S  _% c; W( j

: ?2 `) \( Y3 A, p, ^: y9 }     1     1     0     0     1     0     0
! h# i2 d9 e% P* {! Q     7     4     0     0     3     0     0& J9 ^6 L* D5 ~& `  E
: @, N4 w  V. c6 w
第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。
7 a' ?4 E! _& j$ Y/ ?9 T或者
, i5 g4 _. \% U- b; v3 R[find(a==1) b(find(b>0))]
  `. A0 s" N+ N, H7 Y1 S- kans =: L0 y, m" r4 Z
+ p5 T1 E$ \8 ^5 R
     1     7
- Q' s' U9 e. l7 y& b7 j) r     2     43 w$ \. t5 n! m
     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);9 n, \. Z3 J6 e
loc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-1 21:47 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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