无法识别的函数或变量“size”。从脚本调用的函数

4次浏览(最近30天)
凯瑟琳Heitger
凯瑟琳Heitger 2021年8月18日
评论道: 凯瑟琳Heitger2021年8月19日
存在的问题:
我有一个脚本,我调用两个自己编写的函数。其中一个函数名为weightingFkt2()。在这个函数中,我调用Matlab的find()函数,它返回索引。现在,如果我想调用indexsize=size(index,2),我得到一个错误"Unrecognized function or variable 'size'."而运行代码。
我已经完成的工作(研究之外):
我检查了加权的fkt(),如果它是一个矩阵。它是。
如果我在得到错误(我告诉matlab暂停错误)后在命令窗口中写相同的行(indexsize=size(index,2);),它工作得很好。
我以前在同一个函数的不同变量上得到了相同的错误。在那里,我能够将size()的调用放入脚本中,在那里它工作得很好。
我使用Matlab R2019b。
我附加的函数中相关的代码行,我得到错误的那行是第43行,我得到错误的那行,但是能够把这行放到脚本中是5、6和17行。
在脚本中,相关代码行为:
origsize1=尺寸(origimage,1);
origsize2 =大小(origimage, 2);
newsize1 =圆(origsize1 * 1.25);
newsize2 =圆(origsize2 * 1.25);
x = 1: newsize1
y = 1: newsize2
%findnearestindeces:查找值象素中最近的点
x和y的%
nearestindex = findnearestindeces (x, y, valuepixels (:,:,:));%valuepixels: valuepixels(s,t,:)=[currentPoint(1), currentPoint(2), neworigimage(s,t)]; / /当前点
size3 =大小(nearestindex, 1);%由于weightingFkt()中的错误消息现在在脚本中
cp = (x, y);
imagevalue=weightingFkt2(nearestindex, cp, valuepixels, size3);
finalimage (x, y) = imagevalue;
结束
结束
我的问题是,我怎么解它。
因为这是我在这个论坛的第一个问题,我试图遵循所有的指导方针,并添加所有相关的代码,但请让我知道,如果有什么缺失。
2的评论
凯瑟琳Heitger
凯瑟琳Heitger 2021年8月18日
谢谢你的回答。
Length1是4,因为nearestindex是4x2 double。
我已经问了自己一个类似的问题,并不是说最近的索引没有被赋值,但我检查和查看了。所有的8个值(4x2)都是二重的,它是一个矩阵。事实上,它们的值是([412 1];[1];(514 1);413年[1])。
find()函数返回一个值,在本例中是1x1双精度的,但无论如何。
每次我得到这个错误,我运行size()命令int命令窗口,我工作得很好。

登录评论。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2021年8月19日
接近脚本的底部
大小=大小(nearestindex);
因为你赋值给变量 大小 , MATLAB假设size必须是脚本中任何地方的变量。
不要同时使用函数和变量的名字:MATLAB现在允许做这类假设。
1评论
凯瑟琳Heitger
凯瑟琳Heitger 2021年8月19日
谢谢你!现在我真的很尴尬……我用自己的眼睛和别人,对代码检查了两三遍。但我忽略了这一点。再一次感谢您!

登录评论。

答案(1)

Chunru
Chunru 2021年8月18日
编辑:Chunru 2021年8月18日
最可能的情况是,在代码中使用“size”作为变量名。试着“debstop错误”;当发生错误时,使用“whos”查看变量列表中是否有“size”。
8的评论
凯瑟琳Heitger
凯瑟琳Heitger 2021年8月19日
因此,我将自己编写的函数的名称复制到命令窗口中,并在错误发生之前设置了断点。这里我在命令窗口中输入'size'+0,输出如下:
ans =
115 105 122 101
错误发生了。但我不认为,这是你的意思。

登录评论。

类别

s manbetx 845


释放

R2019b

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!