Unable to perform assignment because the left and right sides have a different number of elements.

1 view (last 30 days)
Yu on 20 Aug 2021
Commented: Yu on 21 Aug 2021
Hi, I'm trying to do a for loop as following.
It can loop up to 633 times but can't do more and I got the error message as in the title.
I appreciate if you could teach me how to solve this.
load variables
for j = 1:length(r)
[content(j)] = vlookup(AC, r(j), 2, 1);

Accepted Answer

Turlough Hughes
Turlough Hughes on 20 Aug 2021
Edited: Turlough Hughes on 20 Aug 2021
Your vlookup is not returning a value when j = 634. You will need a condition to deal with this when it happens.
For example:
load variables
k = 1; % loop variable
content = zeros(size(r)); % preallocate
for j = 1:length(r)
v = vlookup(AC, r(j), 2, 1);
if ~isempty(v)
content(k) = v;
k = k+1; % increment k
% remove excess rows that arose due to empty output from vlookup
idel = find(content~=0,1,'last');
content(idel+1:end) = [];

Sign in to comment.

More Answers (0)


Community Treasure Hunt

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

Start Hunting!

Translated by