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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的0 Z  s0 H9 H" A. k/ N* Z1 v
G=[9        101 z% O. L  g! y$ Q
4        5
5 S  Y8 Q  O8 J  i% v, i14        13& v/ c- O( o* C/ g6 J' y
3        4
/ F& A* H( s8 F: V13        12
2 O" C: h$ N$ }. S& L  Z$ G11        109 @0 f/ w7 T4 q* v' Z
7        9], M, ?  [  }: [" u6 ?+ }$ [

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的8 p- C0 m% c# B- ~: s  U
[a,b1]=unique(G,'first');
+ N! s5 K! A; p; B[a,b2]=unique(G,'last');# f$ G/ `" t/ r% }& Q# f
[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));
# o4 k" u1 C. C8 I[a b]'
& m' K/ Z1 s2 |" M8 |) ]& b& ]5 \* r; R4 G* J
2 F  t& z9 B- u, Z+ K' L
ans =1 i1 H7 `1 r  t  {  v

+ \1 {/ Q* f# j$ K$ `- [; ~     1     1     0     0     1     0     0( o# I8 K/ U7 _  A* p
     7     4     0     0     3     0     0
% Q+ @5 n+ M% D6 l2 y, J; u) b0 E( e, J# K" F
第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。5 H& F/ b5 J, R% _! q- W
或者! a  _" ], L* x2 p9 J
[find(a==1) b(find(b>0))]
; \6 t5 ~/ y5 u1 [$ ians =7 Q0 w, p" C; B$ }% W
1 J7 u2 r7 G" F+ `. t1 H
     1     7' }' N8 s  q  k- X  t* G
     2     4( U; B# s& y! g: F4 q. n
     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);
; B  u7 U( a: O1 b! Vloc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-19 23:35 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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