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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的' Z' z! ?% j/ {/ j
G=[9        10- f/ a; m! C& C4 }: P4 k
4        51 I. M% T3 [/ I4 @) P$ m+ ?2 {
14        13' C. T/ Q6 ]; o
3        4+ C  [9 W- n5 T0 P& K% H' C
13        12
5 S9 v5 g+ g! }- \" y4 g. j" g11        10* S5 Q% U- x$ {8 i$ N
7        9]/ H8 {4 I$ G& N6 |

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的
0 D" I+ `: p  R2 L3 N* R- C[a,b1]=unique(G,'first');7 _3 _  B" D9 ?. S+ A4 l
[a,b2]=unique(G,'last');5 M" ^- Z& {+ D0 u8 O& F1 T% L' c' k
[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));
9 q2 J: C2 E6 ^9 D6 u! l0 K[a b]'
* I6 Q. W' m2 s+ Z/ X/ t
4 Q/ z9 O) b; W- d
4 e, ^( Z# ?; e7 ^8 O# _$ pans =
0 y0 @. A) @( j# a) E, D
+ `/ W2 ~. ]% E0 L* \     1     1     0     0     1     0     0
4 N/ Q8 C( ~& a5 _* X3 F8 F# I     7     4     0     0     3     0     0. M2 S6 Q) X& P6 r- ?

4 p+ f. |- n6 h- I2 ~/ m第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。9 r# y. w/ t" t6 a) _5 o
或者; Q8 G0 q% u+ s
[find(a==1) b(find(b>0))]
& A9 \8 C3 t3 e8 h8 Q7 w& ]2 I) wans =
* M+ A7 g9 r$ L" ~' D: r. W
9 X7 S2 ^2 I* J, ]     1     7/ v6 A  Q3 V; X3 E9 T6 G% x4 D
     2     4
3 F4 g4 l7 X2 b- ~     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);
. R5 Q1 {9 w) g& ~- Uloc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 14:15 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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