Unrecognized function or variable 'size'. in function called from script
显示 更早的评论
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
Katharina Heitger
2021-8-18
采纳的回答
更多回答(1 个)
Most likely, somewhere in your code you use "size" as a varibale name. Try "debstop error"; When error occurs, use "whos" to see if "size" is in the variable list.
8 个评论
Katharina Heitger
2021-8-18
Chunru
2021-8-18
Provide more details of the error messages (where it goes wrong). It's even better if you can provide executable code that demonstrate the error.
Katharina Heitger
2021-8-19
Walter Roberson
2021-8-19
编辑:Walter Roberson
2021-8-19
In the code, just before the error, try
which size(index,2)
also, I suggest taking the code and copying the function name directly from the code (using your mouse), and then at the command window do
'size'+0
except copying from the code into the command. The purpose of this would be to check that there are no special characters, no mistaken spelling that is being overlooked
Question: does your code just happen to assign to a variable named path ? If so, then Don't Do That.
Katharina Heitger
2021-8-19
Katharina Heitger
2021-8-19
Katharina Heitger
2021-8-19
Katharina Heitger
2021-8-19
类别
在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!