[問題] 陣列內找值

看板MATLAB作者 (布丁女孩)時間14年前 (2012/03/27 10:37), 編輯推噓0(007)
留言7則, 3人參與, 最新討論串1/1
假設我有多個一維陣列 a=[1 3 2 15 88 20 11 ...]; b=[11 25 55 45 23 34 ...]; ... query=[24 39]; 我想要找出同時包含這兩個元素的陣列 並印出其陣列中的位置 也希望可以按query的順序印出位置 /搜尋過find 可是對find不是太孰悉 或者有其他函式可以用呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.64.91.30

03/27 14:06, , 1F
pos=find(a==query(1))
03/27 14:06, 1F

03/27 14:07, , 2F
a(pos)
03/27 14:07, 2F
但是query的兩個元素不一定會相鄰 有可能中間會間隔數個甚至多個元素 而且順序也未必會一樣 是這樣寫嗎? ※ 編輯: cashpaggy 來自: 203.64.91.30 (03/27 14:45)

03/27 18:27, , 3F
跑了再說吧
03/27 18:27, 3F

03/27 23:02, , 4F
iFind = ismember(a, query);
03/27 23:02, 4F

03/27 23:03, , 5F
index = 1:numel(a);
03/27 23:03, 5F

03/27 23:04, , 6F
index(iFind)即為所求,b亦然
03/27 23:04, 6F

03/28 11:00, , 7F
感謝樓上兩位!
03/28 11:00, 7F
文章代碼(AID): #1FSIVdmm (MATLAB)
文章代碼(AID): #1FSIVdmm (MATLAB)