找回密码
 注册
关于网站域名变更的通知
查看: 342|回复: 3
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的
# Y+ X: I3 q7 N8 K* [- dG=[9        10/ g9 k6 C. ~2 h, j- r
4        5# b0 V$ y' M* k! a6 H( T" m
14        13' b; \+ }0 h2 T" C! w
3        4! R  \7 O; U/ g, |6 J$ Q+ }3 c& B
13        12: U$ O7 |3 B0 i2 L* v0 @* A
11        10. \$ ^4 C9 S9 U: e6 F
7        9]
+ U  Y2 B' F' I4 w$ ^2 d

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的
5 k" l4 C9 D; K[a,b1]=unique(G,'first');! E4 H9 o! p% b" C$ F1 N
[a,b2]=unique(G,'last');" \0 h9 s5 e; Q9 Z
[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));6 }1 g2 E# j8 H4 ~" k- B' p
[a b]'
2 L, ^( N% U( _7 o: W- n# o6 p* y: G! f

; ]. y/ C$ u6 [6 {# }$ Mans =
# {% ~. _, |% g, W8 y8 _1 P" Z7 m1 k; a) j* m  F
     1     1     0     0     1     0     0
: b' X  Z- [( Z: I, x) I0 l     7     4     0     0     3     0     0& X/ l2 ?' P! s
3 p8 ^- Z, M' |  W6 H1 C
第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。
4 e* X/ c, p' E) J9 G; H9 U/ L或者
7 L! ^$ J: K: D6 E. n[find(a==1) b(find(b>0))]
0 g* g$ m/ W9 Mans =
) c- ^" G2 Q" n1 ?' b. P! z2 ~4 A9 G3 u! ^( s5 V( o$ h8 ~  R
     1     7* T' Z# F  `/ ~
     2     4
; C! b: f! @- X! O8 c5 x, Q& _     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);$ h9 Z* t' R- b0 G
loc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-4 17:08 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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