110 views (last 30 days)

Hi,

I have an array of 19x2 double (r_F), contains 19 integers in column 1 and 2. Now I want to do a vlookup of integers that are stored in the array auswahl; the size is 100x1. If the integer of auswahl were find in column 1 of r_F then write the integer of column 2 in the array R_X. The following code do that for me.

R_X = [];

for i = 1:size(auswahl, 1)

index = find(r_F(:, 1) == auswahl(i));

content = r_F(index, 2);

disp(i + ": " + index + " " + content)

R_X = [R_X; content];

end

Strangely enough contains the result on index 23 and 74 0x1 empty double column vector?! Has anyone an idea why this is happen?

Kind regards,

Patrick

Guillaume
on 12 Feb 2020

a) If you want to generate integers between 0 and 19 use:

auswahl = randi([0 19], 100, 1); %use randi to generate random integers

b) Despite what you may have been taught, loops are rarely needed in matlab and often complicates everything. To keep the elements in the second column of r_F for which the first column is found in auswahl:

R_X = r_F(ismember(r_F(:, 1), auswahl), 2); %keep elements of column 2 of r_F for which column 1 is a member of auswahl

Guillaume
on 14 Feb 2020

I'm afraid I can't see anything wrong with the results produced by your script. Both auswahl and the first column of r_F are guaranteed to contain integers due to the way you construct them.

edit: However note that auswahl contains integers from 0 to 19 included, while r_F contains integers from 1 to 19. Perhaps, you meant to have integers from 1 to 19 in auswahl all along, in which case:

- I did write "If you want to generate integers between 0 and 19 use"
- That's what your original round(rand(100,1)*19,0) did

If you want integers between 1 and 19 (included) then:

auswahl = randi(19, n, 1)

Sign in to comment.

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 1 Comment

## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/505170-0x1-empty-double-column-vector#comment_796515

⋮## Direct link to this comment

https://se.mathworks.com/matlabcentral/answers/505170-0x1-empty-double-column-vector#comment_796515

Sign in to comment.