如何利用 Matlab實現矩陣相同元素的查找?
01-07
怎樣在matlab里找出兩個矩陣的相同元素,比如A=[1,2,4,5,6,7,9,3,4,5,2,3,2],B=[2,3]。希望將重複的元素也重複輸出,比如輸出C=[2,3,2,3,2]的結果~~~試過intersect,但是重複元素只顯示一次,不是我要的效果,求大神幫助。
只要A(ismember(A, B))就夠了。
同意循環實在是暴殄天物。
XieYao利用兩個for語句進行嵌套,用矩陣A中的每一個元素分別與矩陣B中的元素進行比較,如果相同則將該相同元素存入矩陣C,從而實現兩個矩陣相同元素的查找.=====源碼分割線=====
clc;clear;
A=[1,2,4,5,6,7,9,3,4,5,2,3,2];
B=[2,3];
m=1;
[H1,L1]=size(A);
[H2,L2]=size(B);
for i=1:L1
for j=1:L2
if A(1,i)== B(1,j)
C(1,m)=A(1,i);
m=m+1;
end
end
end
C
我用的是Gnu Octave。Matlab大概是一樣的吧。
A(find(ismember(A,B)))
這樣的語言用for簡直是暴殄天物……
順便說一句,我覺得單從語言的角度說,與Octave/Matlab最接近的語言應該是APL……Find函數是最基礎的了,不要用循環,直接找到索引再創建新數組
交集函數?
推薦閱讀:
※如何能專心的下來打代碼?
※有哪些適合matlab初學者編寫、同時簡單實用的結構分析小程序?
※Matlab 可以做一些什麼有意思的事?