Unrecognized function or variable 'size'. in function called from script
19 次查看(过去 30 天)
显示 更早的评论
The Problem:
I have a script, where I call two self-written functions. One of the functions is called weightingFkt2(). In this function I call the find() function of Matlab, which returns indexes. Now, if I want to call indexsize=size(index,2) I get an error "Unrecognized function or variable 'size'." while running the code.
What I have already done (besides researching):
I checked in the weightedFkt(), if it is a matrix. It is.
If I write the same line (indexsize=size(index,2);) in the command window after getting the error (I told matlab to pause on errors) it works fine.
I got the same error on different variables in the same function before. There I was able to put the call of size() into the script, where it worked fine.
I use Matlab R2019b.
The relevant lines of code in the functioin I attach, the line where I get the error is line 43, the lines where I got errors, but was able to put the line in the script are 5,6 and 17.
In the script the relevant lines of codes are:
origsize1=size(origimage,1);
origsize2=size(origimage,2);
newsize1=round(origsize1*1.25);
newsize2=round(origsize2*1.25);
for x=1:newsize1
for y=1:newsize2
%findnearestindeces: finds the nearest points in valuepixels
%of x and y
nearestindex=findnearestindeces(x,y,valuepixels(:,:,:)); %valuepixels: valuepixels(s,t,:)=[currentPoint(1), currentPoint(2), neworigimage(s,t)];
size3=size(nearestindex,1); %due to error message in weightingFkt() now in script
cp=[x y];
imagevalue=weightingFkt2(nearestindex, cp, valuepixels, size3);
finalimage(x,y)=imagevalue;
end
end
So my question is, how I can solve that.
As that is my first question in this forum I tried to follow all the guidelines and add all the relevant code but please let me know, if something is missing.
2 个评论
Walter Roberson
2021-8-18
I wonder if the error is against nearestindex instead of against size? If length1 < 1 then you never assign to nearestindex
采纳的回答
Walter Roberson
2021-8-19
Near the bottom of the script you have
size=size(nearestindex);
Because you assign to the variable size, MATLAB assumes that size must be a variable everywhere in the script.
Do not use the same name as both a function and a variable: MATLAB is permitted to make these kinds of assumptions now.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Startup and Shutdown 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!