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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的6 n( D3 T: y9 G" h3 [
G=[9        10
0 n* j! J/ C# t7 S/ }3 F, P# f4        5
) I- ~8 c3 b$ r$ s* E/ {14        13
' c& E3 `) m. H' B3 Y. f3        4
7 Y  g4 n4 Q, N9 k$ _) z' \* I  q% p13        12" D3 \  B! q/ d& |8 J# r) l/ R
11        10" }- ?# h7 `  d8 \7 f! }, a
7        9]
9 T; N+ P. l+ J% t4 t) p

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的
' O# a8 z9 D* b' f" _' J) }: s* L[a,b1]=unique(G,'first');
* a+ J. ~3 O4 ]: b: S[a,b2]=unique(G,'last');
% ?- v. p9 B( @4 r9 G5 p2 y* \[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));
: C' l7 q' e) R( l6 ]+ J. f[a b]'
: a* ?, a/ E; e8 Q
* v: ?2 A$ T% M
7 E& ]& K2 b$ k& Uans =
4 R1 x) T" [. C  P- a, E* z5 C( B( V3 L% w/ g1 W1 f' P
     1     1     0     0     1     0     0  [( f7 a  v6 F: J! \! c
     7     4     0     0     3     0     0+ ~0 q! T* s/ O% H5 ]& S; p
2 U( z3 O; K+ M$ }. M
第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。
: i8 b7 a8 @' F" {' h3 Z或者
9 H$ I, I5 w1 T" D! J. b[find(a==1) b(find(b>0))]: c% x* i: p6 |  c% g2 S# _
ans =( ~7 |$ h; f1 U. j* K
- V( d( N& F, v) [1 v4 ~0 R
     1     7
7 V! F( w2 M3 ]1 ^8 K2 Q4 ?5 U     2     4
, j: Z- c. w: x- J) U1 Q* B& E$ d     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);( @0 J$ w: D6 I6 o( Y
loc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-12 17:07 , Processed in 0.093750 second(s), 23 queries , Gzip On.

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

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

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