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

3 次查看(过去 30 天)
评论: Yu ,2021-8-21
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);


Turlough Hughes
Turlough Hughes 2021-8-20
编辑:Turlough Hughes 2021-8-20
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) = [];
  3 个评论


更多回答(0 个)


Community Treasure Hunt

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

Start Hunting!

Translated by