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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的- P/ n; j' @' J' N* ?
G=[9        10
( f& U# L, Z' {# ~% C4        54 `* x7 Y( M" q1 l- {
14        13. I) A# K1 r( n% p7 D- r7 j
3        4
( o: |- n( Q% D% V" c! T13        12
7 n* q1 f/ B: o, ~& P0 Z11        109 @* j5 o! s1 C
7        9]
' Y3 \' V- D; \9 x$ D/ ]

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的
) E/ y) f3 v, P9 ~3 B& Q4 U1 Y[a,b1]=unique(G,'first');( |; ]& q3 m- {9 L; q& \* J- T
[a,b2]=unique(G,'last');
# U  m. l2 {1 m/ f( [2 k8 ~! O[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));, E' r7 w4 S; B9 ~3 `  w# U
[a b]'
- Q# ?2 }: e, d3 R2 ~
4 E1 q3 y- M* q# u2 y& b7 c; t5 F- F3 |! @8 V* V1 L9 w: G
ans =
, f( @, ~' F$ @% k& L; X: ?5 `* s
$ e1 A7 @' P6 w! P" ~, N2 v     1     1     0     0     1     0     03 W( ^) c  h9 g2 y  G# t# L
     7     4     0     0     3     0     0
  m3 P+ _# S4 }' Q( G# I6 d" s6 [; B7 \" Y6 |
第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。5 j/ m3 U* y* ?+ J% O: r
或者0 G$ k9 \8 W' n" G+ n
[find(a==1) b(find(b>0))]
, X5 H; X& n6 c2 Kans =8 ?: n( B  z2 [  O1 f& ?8 G
# r" ]0 M6 H) ~) K% H
     1     7( X2 L: X; h1 M2 T; \) z
     2     4! N$ V" h! k7 X# j9 N! I; [/ H5 T# C
     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);9 p5 E: I& D+ ^5 z5 I( h( q
loc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 17:40 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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