객체 배열을 만들었으므로 for 루프를 사용하지 않고 벡터 연산에 속성 값을 지정하고 싶습니다. 불행히도 나는 오류가 발생합니다.matlab에 객체 배열에 대한 객체 속성 값을 설정합니다.
간단한 문제의 예.
classdef clsMyClass < handle
properties
dblMyProperty1
end
methods
function obj = clsMyClass()
end
end
end
그리고 우리는 다음과 같은 오류 얻을
vecMyArray = clsMyClass.empty(100,0);
vecMyArray(100) = clsMyClass;
vecMyArray.dblMyProperty1 = 1:100;
실행 :
을 ??? 잘못된 도트 이름 의 오른쪽 요소 수입니다. 왼쪽 주변에 []이 누락 된 것은 가능한 원인입니다.
어떤 도움을 주시면 감사하겠습니다.
내 두 센트 :'for' 루프가 아마도 가장 빠른 솔루션 일 것입니다. 또한 첫 번째 코드 줄 ('.empty (...)')은 아무 것도하지 않으며 그 효과는 즉시 두 번째 코드 줄로 대체됩니다. – Bee
MATLAB의 벡터화 덕분에이 작업이 "잘못"되었습니다. 클래스를 "inside-out"으로 바꾸는 것을 고려하십시오. 객체의 배열을 가지지 않고 속성이 배열 인 단일 객체를 가지십시오. [이 논문의 MATLAB 및 OOP] (http://stackoverflow.com/a/1745686/238644)를 참조하십시오. –
@DangKhoa, 나는 큰 배열을 여러 개 보유하는 20 개의 개체 만 가질 계획입니다. 한 번에 20 개 개체의 메서드를 호출하고 속성을 변경하고 싶습니다. – Ruut