EDA365电子论坛网
标题:
找到矩阵中相同元素并且找到它所在的行(或者是位置)
[打印本页]
作者:
ssduck
时间:
2022-4-15 10:50
标题:
找到矩阵中相同元素并且找到它所在的行(或者是位置)
现在有如下矩阵G,想要知道矩阵G中相同元素是什么并且知道它的位置,应该怎么写比较快一些?我查到了有用tabulate,unique,以及find联合写的函数,有没有更简单的方法?就是一个命令就搞定的
3 k# z0 n" G5 v$ t* n
G=[9 10
" q3 V3 o" a8 D+ ^5 H2 a9 h
4 5
5 T* L' ]7 n7 @' E7 x: S
14 13
# y" t: y! ~0 v6 a, T% \% L- ~; N
3 4
- N ^ P( }$ `; T; z
13 12
7 E& @" `$ ?2 }2 g4 P: g
11 10
6 q3 P4 a& s2 T0 c
7 9]
& ?! H. S) W# u
作者:
DuBois_1wwe
时间:
2022-4-15 11:11
至少对你这个矩阵,只有两个相同的,只用unique是可以的
; J8 ], A/ {# R+ t: m
[a,b1]=unique(G,'first');
]/ ]3 A% O( D& b
[a,b2]=unique(G,'last');
6 u8 u( o S7 B: s8 p3 y
[a b1 b2]
作者:
ononsiiii197
时间:
2022-4-15 14:53
[a b]=ismember(G(:,1),G(:,2));
. B; Y+ M; i$ ~7 Z) I: F4 I
[a b]'
$ _7 R2 o/ o0 ~" a- ?: d
/ Q: |+ h8 K4 u( G
6 F. ?9 u' l& k! k
ans =
) M( ~* M) s* F& D. v' u. B. [
' `4 Y7 q; B2 _" G+ a6 X
1 1 0 0 1 0 0
( _7 j, n, k; S
7 4 0 0 3 0 0
# r1 q. ?* q9 W% ` P; u
5 E# e/ A1 s# y3 }
第一行 “1” 表示 第一列 所在行 的数据在 第二列出现 。对应的为所在行。但是,如果 第二列出现两次的话,只得到最小的位置。
8 ~- G2 ^- D) h. Y0 J
或者
1 R4 ~, d% Q* z0 C6 L- M1 h- D
[find(a==1) b(find(b>0))]
# b3 I$ T' z# ^6 x* ^2 x( n
ans =
; {0 T' H& G' u& [) g9 k4 M
/ w* @8 ~- Y' g
1 7
7 |" {: u) w0 m) [% m- e/ c7 u
2 4
~, s- h0 e6 x) I l7 g: d
5 3
作者:
cscscwwwrte
时间:
2022-4-15 15:20
a1 = accumarray(G( : ),1);
, t+ u6 y. {9 Z
loc_a2 = find(a1>=2);
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2