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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的$ j# t2 F, D* x: J0 g1 w0 b1 M
G=[9        10
- _% k# E* {5 A1 b  ]9 }4        5( c' a6 x$ I! Q# n0 O6 V; H/ ]
14        13
: W' C/ ^- R$ k. m3        4- s" Z8 H& C/ g! u+ N) e' O7 S
13        12
# U  |6 ?  E3 [" x, y11        10# V$ M' q4 g" o* x( }" ?
7        9]
* ~2 w1 r; C& U2 Z$ {

该用户从未签到

2#
发表于 2022-4-15 11:11 | 只看该作者
至少对你这个矩阵,只有两个相同的,只用unique是可以的* D8 p/ x3 ?" |0 d/ ?
[a,b1]=unique(G,'first');& `  Z7 e* d. s  }1 Z0 z( r' L( n
[a,b2]=unique(G,'last');4 m  e  C+ O6 f
[a b1 b2]

该用户从未签到

3#
发表于 2022-4-15 14:53 | 只看该作者
[a b]=ismember(G(:,1),G(:,2));, B+ m0 u' P7 E* E9 x/ F
[a b]'
3 R- @9 V9 q2 x6 U0 w" q# {# n  E
1 |4 y. f9 O5 W
ans =& U- j$ n( h9 B' E# r! K; Y8 @

, w/ M" r# q, V3 u* u+ u     1     1     0     0     1     0     0' Y0 [& j0 j1 l! Z' t0 V
     7     4     0     0     3     0     05 ~% j7 B& G( x9 c

9 f- Z: c+ z; W+ e* {: \6 E; u第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。3 u6 s: J" m. w) `9 p$ ^
或者
0 H2 a6 T1 H% D( [[find(a==1) b(find(b>0))]9 W% r& _# y2 P3 ?6 q
ans =
5 s" {0 i6 \! ~( ?: m: R+ C! n
& o; Q( g, U% c' G! G$ `) Z- D     1     77 W' x# ]8 B1 Z% m) A3 |: {
     2     49 W) t/ p3 H% {5 z8 d- t) s7 j
     5     3

该用户从未签到

4#
发表于 2022-4-15 15:20 | 只看该作者
a1 = accumarray(G( : ),1);/ K9 F+ C9 ]0 p6 t
loc_a2 = find(a1>=2);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 01:18 , Processed in 0.140625 second(s), 24 queries , Gzip On.

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

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

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