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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的) Z+ ?+ S) k1 ?+ v4 F4 a0 M
G=[9        10
( l9 L1 @2 m$ _5 c7 `1 ?4        5; m9 ?' }/ S1 G7 d$ v3 b
14        13
( ]0 I- c, G+ o& J3        4
; M( M% w# h) g13        12
/ P% m$ x3 K( E. n4 d% ~% J11        10
+ S2 \" W6 e1 l! }7 y+ O- b7        9]
: T* ?4 J6 L* y+ |/ S2 ~

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的3 k6 v, W- k3 w7 `& x$ o* T* H' {
[a,b1]=unique(G,'first');
/ c, w/ J( l) z( R[a,b2]=unique(G,'last');1 X* B# P9 L9 a" A" r7 K5 A* B
[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));+ O1 D& k* t2 r( ^2 p/ j" h) j8 n
[a b]'
) j  X& `5 g% [& p7 n/ u- l
/ l& O% ?. k3 w2 D! X, @; u0 J* E' R8 a0 X' h. k1 E; H
ans =
4 X$ L6 f% o% n6 a. T4 d) t7 o: U. E
     1     1     0     0     1     0     0, L5 n1 h* `0 E
     7     4     0     0     3     0     0
! z$ |* |4 P* X
; R; e! R, O) k4 A4 P% Q第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。
/ i. |$ d. C8 _3 H8 Q( u# }: ]3 {或者, ~. M1 L6 [1 t  i2 u  g
[find(a==1) b(find(b>0))]
9 Z6 I- q2 S+ G$ A6 {, N. j7 v! uans =$ ^4 p) x. V/ H1 q

8 n7 K$ z  d  u, w5 u' r     1     7. t' L& t$ P+ X' h* ?* l4 L0 B
     2     4
5 G( E  A# T. J3 i     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);  [0 R) s+ ?3 z  |5 L
loc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 16:38 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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