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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的
: ?5 P. Q+ H' P" n" m& CG=[9        10& ^1 G5 I+ C) G4 a. w7 }
4        57 @" b' Y! _6 j( I7 W
14        13
  B. v6 O3 G! m0 z3        4
4 I7 e8 \  i$ f) ]0 t/ n1 z13        12$ Z. m; p! h$ n9 A8 `" R  F1 L3 c
11        10. p" N) ~: h) I4 p. A
7        9]! Y' Z( x% Q5 n

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);- j7 |. M- X6 [! I' ?1 k" F$ ?
loc_a2 = find(a1>=2);

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));3 I9 v: f5 b( Q/ b
[a b]'
8 y: [, W4 o9 ~( q3 p
' {: e8 p3 E. T7 @5 h1 b- A8 U/ D- t0 V5 D
ans =$ ]3 n  d. i+ ~% J$ O9 e

% q* T- j& n/ @% q9 {9 ^     1     1     0     0     1     0     0
! R& m% y: N6 ~% s6 h     7     4     0     0     3     0     0
, C: `4 }/ {. q! ~; o% o( a) @/ ~& J9 D4 k
第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。: ]" [. W( M2 u, b2 a
或者5 u) Z0 D1 [1 h1 [, m4 Q- x+ J
[find(a==1) b(find(b>0))]
% |& A, B. `+ j& T7 I7 `ans =
& O1 s: _/ A6 d$ K
3 U& N; Y  B6 ~% ]     1     7
# s! T5 J2 n9 c1 c5 L# t     2     4
% _* n' i8 E5 b% p) b     5     3

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的
- P7 J4 A, ?+ d  F[a,b1]=unique(G,'first');0 W/ p; C# o; E$ G( W+ b. t
[a,b2]=unique(G,'last');
# u9 P0 [5 y. z3 B; h/ k0 m[a b1 b2]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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