为什么函数参数被认为是未定义的变量?

时间:2014-03-09 21:45:46

标签: matlab

我一直在寻找一段时间,但我似乎无法找到能够描述并解决我所遇到的问题的东西。也就是说,我在ball类中定义了一个函数,用于检查它和另一个球是否相交(由于球保持在同一个z平面上,并且所有这些球的半径都相同) ,我把问题简化为交叉圆的问题。此函数如下(objother都属于类ballball类包含长度为3的位置向量):

function intersected = ball_intersection(obj, other)
    intersected = (obj.position(1)-other.position(1))^2+(obj.position(2)-other.position(2))^2 <= (2*ball.radius)^2;
end

我收到以下错误:

Undefined variable other.

Error in ball/ball_intersection (line 29)
            intersected = (obj.position(1)-other.position(1))^2+(obj.position(2)-other.position(2))^2 <= (2*ball.radius)^2;

Error in ball/move (line 56)
                if ball_intersection(other)

Error in finalproject (line 41)
    cueball.move(0.0001, 0, 0, 9.32, 4.65, otherball);

出于某种原因,Matlab认为函数参数未定义,我不知道如何让它知道它实际上是在那里定义的。

感谢任何和所有帮助 - 感谢阅读!

1 个答案:

答案 0 :(得分:1)

必须使用两个输入参数调用

ball_intersection

您最有可能想要将ball的第56行更改为if ball_intersection(obj,other)if obj.ball_intersection(other)