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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的/ P0 P% m3 R0 Y" N/ }
G=[9        10
" H; I6 x9 x6 C9 ]* \5 R8 C4        59 s6 g) X' _' m( G& P# h
14        131 J$ l( s0 h5 a8 w" X9 N
3        47 L2 h, n9 k, ^+ W
13        12; g7 y4 |( o' V2 }/ w# `
11        10
- B' X) [8 k! n( K. z7        9]9 R% y/ X  V9 T7 q" j7 ~8 m

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的2 |% A; {9 @  r  U) c+ M
[a,b1]=unique(G,'first');; O/ f' x6 m0 C
[a,b2]=unique(G,'last');+ `2 S1 d: S7 u; ~# J$ w; {" N
[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));
- v. S! p5 `$ M7 A& i8 f) y[a b]'6 T3 `0 k0 A: N3 |) |

2 O, i2 @+ \8 F% R& c. b6 y" S3 _$ h3 P1 y
ans =. n# b' O1 k2 m5 y; f4 h
- y2 b5 l/ J' z$ Y
     1     1     0     0     1     0     04 V5 a0 y. }1 `' u# w1 [
     7     4     0     0     3     0     0* Q& N3 B3 H2 a
9 s3 T8 e  O5 w% z6 P& Z
第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。% S6 H" R$ g6 K9 l
或者
1 M0 D, F" o, z9 Q" r7 o2 Y[find(a==1) b(find(b>0))]
* S* i$ b$ K: Hans =+ w4 {" a! f% ]5 A  J
$ x8 Z6 v9 M( ^  ?3 B! R# d' O
     1     7* Q+ i. j  f1 m: q! t% p6 A" ?
     2     4
7 c) S+ d% l. F3 W3 \     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);/ K1 t- o+ W, i7 P2 ^; Y" U
loc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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