Info
이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.
Undefined operator '>' for input arguments of type 'BasicClass'
조회 수: 1 (최근 30일)
이전 댓글 표시
Hey, I want to write a simple class that will calculate recursive some values. Then, when I want to call my function, I got the report: Undefined operator '>' for input arguments of type 'BasicClass' Any ideas how can I repair this? I'm pretty new with the object oriented programming...
classdef BasicClass
properties
Value
end
methods
function [Result] = r (Value)
if Value > 0
Result = r(Value - 1) * 1000+2;
else
Result =2;
end
end
end
end
댓글 수: 0
답변 (2개)
Steven Lord
2017년 9월 1일
The input argument to the r method of the BasicClass class will be an instance of BasicClass. You will need to access the property of that object explicitly; there's no implicit "Because this identifier matches the name of a property, we'll use the value of that property on the instance of the class in this method" behavior.
While you could make a new BasicClass object to perform the recursive call to the r method, I would instead use a class-related function that is not a method to do that recursion. Put all of the next block of code into a file named BasicClass.m.
classdef BasicClass
properties
Value
end
methods
function [Result] = r (myobj)
Result = recurseComputeR(myobj.Value);
end
end
end
function Result = recurseComputeR(myobjValue)
if myobjValue > 0
Result = recurseComputeR(myobjValue-1)*1000+2;
else
Result = 2;
end
end
Use this class like:
obj = BasicClass;
obj.Value = 2;
answer = r(obj)
You should receive 2002002 in the variable answer.
댓글 수: 0
이 질문은 마감되었습니다.
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!