Finding whether the element of the array is present in the other array and finding the index value

1 view (last 30 days)
i have 2 arrays
p = -0.20000 -1.80000
v = 0.9000 0.30000 1.20000 1.50000 -1.80000
I have to compare both the array and finding the whether the element present in p is equal to the element present in v. It has to check each value ( negetive values also included )
if its a success then print the value and the index along it.
how to do it ?
i should get answer as -1.80000 and its index in both arrays
Please help, i am new to matlab

Answers (1)

Akira Agata
Akira Agata on 27 May 2020
Edited: Akira Agata on 27 May 2020
Just in case, let me post an example.
If you don't need to think about tolerance, intersect function also works.
% Example (desired output: [-1.8 1.2])
p = [-0.2 -1.8 1.2];
v = [0.9 0.3 1.2 1.5 -1.8];
% Soution1:
[idx,loc] = ismember(p,v); % or ismembertol, if assuming tolerance
out = p(idx);
idx_v = loc(idx);
idx_p = find(idx);
% Solution2:
[out,idx_p,idx_v] = intersect(p,v);

Categories

Find more on Operators and Elementary Operations 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!