为什么MATLAB报告我的变量未初始化?(Why is MATLAB reporting my variable uninitialized?)
我做了一个课程,在其中一个方法中,我需要计算两点之间的距离。 所以我写了一个名为“remoteness”的普通函数来为我做这个。
编译错误:
在编译时,“远程”被确定为变量,并且该变量未初始化。 “remoteness”也是一个函数名,MATLAB的早期版本将调用该函数。
但是,MATLAB 7禁止在与函数和变量相同的上下文中使用相同的名称。
错误在==> TRobot> TRobot.makeVisibilityGraph at 58 obj.visiblityGraph(k,k + 1)= remoteness(:,obj.VGVertices(k),obj.VGVertices(:,k + 1));
我认为remoteness名称可能是另一个函数的名称,但当我将其名称更改为kamran ,错误仍然存在。 应该注意,我可以在命令行中使用kamran函数(或remoteness ),没有任何问题。
命令行示例:
>> kamran([0,0],[3,4])
ans = 5
kamran函数的代码位于单独的m文件中。
kamran功能代码:
function dist = kamran(v1,v2)
dist = sqrt( (v1(1) - v2(1)) ^2 + (v1(2) - v2(2)) ^2 );
有关如何使用kamran函数的代码示例:
function obj = makeVisibilityGraph(obj)
verticesNumber = 0;
for num = 1: size(obj.staticObstacle,2)
verticesNumber = verticesNumber + size(obj.staticObstacle(num).polygon,2);
end
% in the below line, 2 is for start and goal vertices
obj.visibilityGraph = ones(2 + size(obj.VGVertices,2)) * Inf;
for j=1 : size(obj.staticObstacle,2)
index = size(obj.VGVertices,2);
obj.VGVertices = [obj.VGVertices, obj.staticObstacle(j).polygon];
obj.labelVGVertices = [obj.labelVGVertices, ones(1,size(obj.staticObstacle(j).polygon,2))* j ];
for k = index+1 : (size(obj.VGVertices,2)-1)
obj.visiblityGraph(k,k+1) &