How to find location of elements in an array
Show older comments
I have 2 vectors 'A' of size 41*1 and 'B' of size 14*1
vector 'B' contains selected elements from vector 'A'. how do I find the position of elements present in vector 'b' in vector 'a'?
Example: A=1:1:100
B=2:2:20
Now I want to find the position of elements of B in A.
I tried find function but it throws dimention error.
Thanks in Advance
Answers (2)
KALYAN ACHARJYA
on 5 Jul 2020
Edited: KALYAN ACHARJYA
on 5 Jul 2020
idx=find(ismember(A,B))
5 Comments
Praanesh Sambath
on 5 Jul 2020
Stephen23
on 5 Jul 2020
As logical indices:
idx = ismember(A,B)
As linear indices:
[~,idy] = ismember(B,A)
KALYAN ACHARJYA
on 5 Jul 2020
Edited: KALYAN ACHARJYA
on 5 Jul 2020
Edited see the answer, idx=find(ismember(A,B))
KALYAN ACHARJYA
on 5 Jul 2020
Yes, thank you Stephen Cobeldick sir
Praanesh Sambath
on 5 Jul 2020
Kanupriya Singh
on 5 Jul 2020
Try this-
a = [2 1 3 4 6 8]
b = [2 6 8]
idx = [];
for i = 1:length(b)
idx = [idx, find(b(i) == a)];
end
2 Comments
Stephen23
on 5 Jul 2020
Rather complex... one ismember call is much simpler (and is what most MATLAB users would do).
Praanesh Sambath
on 5 Jul 2020
Categories
Find more on Aerospace Blockset in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!