Assigning element of another array into another array based on index

10 views (last 30 days)
I've stored the index of the elements of interest in an array, B, and would like to use the values in B to obtain the values of the elements in another array, A, at positions indicated in B.
e.g.
A = [5 4 4 5 6 6 8 5 8 5 14 11 3 2 4 5];
B = [1 2 4 8 10 12 16];
for i = 1: length(B)
if (A(B(i))== 5)
idx = [idx,i];
end
end
form my understanding, i should be able to get idx = 1 4 8 10 16 However, what i am getting is idx = 1 5 10 15
I'm not sure what is the problem as the logic of the code seems right to me.
can i also check what is the difference between array and matrix?

Accepted Answer

Matt J
Matt J on 29 Oct 2014
Edited: Matt J on 29 Oct 2014
You don't really need a loop at all and can do the whole thing in one line,
idx=B(A(B)==5)
  4 Comments
Matt J
Matt J on 29 Oct 2014
Edited: Matt J on 29 Oct 2014
I never proposed anything that looks like B(...)== 5. The expression I wrote is B( A(B)==5 ).
I tested my proposal on your example data and it worked fine for me. So, whatever's causing your error, it's coming from something unposted.
Mich
Mich on 29 Oct 2014
Edited: Mich on 29 Oct 2014
hey i apologise for my mistake. my original code was way more complex and i simplified it to this, but the same variables were used, thus resulting in my initial confusion when i tried out your suggestion. i tried your suggestion again and it works! thanks alot!!

Sign in to comment.

More Answers (1)

vimala victor
vimala victor on 16 May 2018
hi, i have one array RL=[1 13 11 14 25 37 53 29 75 81 66 10 98 15 33 44 77 88 20 49 1 3 4 2 5 1 2 2 3 4 2 1 5 2 3 1 2 4 3 3]; That is first row defines the index values and second row is the values of corresponding index.(Eg.for index value 1 the value is 1,index value 13 the value is 3...) and IM= 44 14 98 88 20 13 11 37 77 25 81 20; How can i extract the corresponding IM indexing Values from RL using indexing. please ,can anyone help me to clarify my doubt with how to define in matlab coding

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!