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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的0 D& {) o* q" t  G2 ?
G=[9        10/ U+ s0 f3 r& e9 s+ {! ~+ O1 {  x0 P
4        5
8 T; b. T# g0 Q. S14        13
& n0 S5 W2 ^" @* x3 |8 A, h/ f/ `3        4
* S( ^) y4 t# M3 X( ]  r13        12# A7 k& k3 }, y+ Y) y8 ~# H
11        10
. Q8 R; \+ G9 A7 `- g7        9]+ _) {1 S) X& \: w& C/ \! ]3 k$ E

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的
$ A) Q7 w1 n. x. ?[a,b1]=unique(G,'first');
5 M3 X+ f& h+ M" U7 w0 [- h[a,b2]=unique(G,'last');- V2 w( m- r2 g" H5 T% e
[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));
# P8 f* o3 z; r* W+ _[a b]'  ^( y1 e& Y+ N& o! ]  j2 O; r
' J0 h& T# V) C, z% m/ h" I, ^  `
7 c1 S2 i0 m/ L: {
ans =
' C0 ~. F: |& @) N3 Z
9 u) ?: _% h& H: ]     1     1     0     0     1     0     0, q+ ~/ _7 l# U% {  ]9 ~
     7     4     0     0     3     0     06 X- u7 h, k, P. E
$ d$ e/ a' {& K" B
第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。9 d6 g" c, W& f. D
或者
  q. Z8 f* l' e! u6 F[find(a==1) b(find(b>0))]
7 ]1 C4 N' c  R# N0 L4 H* y1 Bans =
4 t) {$ S. _" V
6 W& V! [* E4 T0 B     1     7% \$ r! b; l' T6 s5 `4 Q5 V; I
     2     4
  E  r/ `& o0 _1 d     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);5 C! a" R+ p. v4 W9 o
loc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-5-28 12:17 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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