저는 matlab 클래스를 처음 사용하고 몇 가지 자습서를 거쳐 이제 하나를 만들려고합니다. 내 방법 섹션에서는 그러나, 내가 뭘하려고했는지 문제가 있습니다. 객체는 생성자에 대한 입력으로 전달할 나머지 속성을 생성하는 데 필요한 단일 정보 만 필요합니다. 나는 시도하고이 프로그램을 실행할 때 그때, 그러나 ... 나는 ... 나머지 속성을 작성하는 방법 섹션에서 두 개 더 함수를 호출 아래 의사 코드를 참조 할 수 있어야Matlab 클래스 메서드 오류
methods
function obj=myConstructor(input)
obj.property1=input;
getProperty2(obj);
getProperty3(obj);
end
function getProperty2(obj)
obj.property2 = do something and save in property2...
end
function getProperty3(obj)
obj.property3 = do something and save in property3...
end
end
을 생각하지도 않는다 속성 2 또는 3은 ... 생성자에 전달하는 값만 할당됩니다. 초기화를 수행하는 방법에 대한 도움이나 아이디어는 많은 도움이 될 것입니다. 감사.
질문하는 것이 가장 좋지 않을 수도 있지만 새로운 질문을 시작하고 싶지 않습니다. 왜 'obj = obj.calculateP2'대신 'obj = calculateP2 (input);'을 사용할 수 없습니까? (입력); 왜 이것이 에러가됩니까? (MATLAB 경로에'calculateP2'가 없다면)? 왜 생성자는 클래스 메소드에 대해 알고 있지 않지만 obj.method() 표기법을 사용하여 메소드를 지정해야합니까? 다음 표기법 중 하나를 선호합니까? obj = obj.calculateP2 (입력); 또는'obj = MyClass.calculateP2 (입력);'? – Erik
@ Erik : 현재 구문이 매우 명확하고 따라서 오류가 발생하지 않는 (즉, 장면 뒤에서 일어나는 일을 알아야 할 가능성이 가장 적습니다 (우선 순위 규칙 등)) 것으로 생각됩니다. 'MyClass.calculateP2 (input)'도 유효하지 않음을 주목하라 : 이것은 정적 함수를 호출하는 방법이다! (비 정적 인) 메소드를 호출하고 싶다면'obj.method (args)'또는'method (obj, args)'의 두 가지 가능성이있다. 나는 전자를 선호하지만 때로 후자는 표준 인터페이스를 제공하는 데 유용합니다. 'plot (obj)'. 자세한 내용은 채팅 또는 질문 :-)을 열어주세요. – Egon