Matlab 내의 COM 컬렉션을 반복해야합니다. VB에서는 For Each item In Collection
을 사용할 수 있습니다. 파이썬에서는 for item in Collection
을 사용할 수 있습니다. 그러나 유감스럽게도 이러한 구조는 다음과 같은 간단한 루프를 사용하는 Matlab에서 사용할 수 없습니다.foreach 또는 .Item()없이 COM 컬렉션을 반복하십시오.
for index = 1 : Collection.Count
item = Collection.Item(index);
% now do something useful with the item
end
이 방법은 일반적으로 잘 작동합니다. 그러나 특정 컬렉션에서 .Item()
은 숫자 인덱스가 아닌 문자열 (항목 이름) 만 허용합니다. 그래서 위의 코드 스 니펫은 루프를 반복하기 전에 항목 이름을 미리 알지 못하기 때문에 실패합니다.
VB에서는 item = Collection(index)
을 수행 할 수 있지만 Matlab은 "item is Collection number index"로 인식하므로 Matlab에서는 실패합니다. 즉, Collection (2)는 Collection의 두 번째 항목이 아닌 두 번째 Collection에 액세스하려고합니다. 이것이 우리가 일반적으로 Matlab에서 .Item(index)
을 사용하는 이유입니다.하지만 위에서 말했듯이 Item
은 문자열 만 허용하는 특정 컬렉션에서는 실패합니다.
내 질문은 : foreach
구조 또는 Item(index)
메서드없이 COM 컬렉션을 반복 할 수 있습니까?
답변 해 주셔서 감사합니다. 이 코드를 구현하는 간단한 VB 코드 스 니펫을 게시 하시겠습니까? 그 다음 VB 스크립트를 Matlab –
으로 변환하려고 시도합니다. C/C++/C#만을 프로그래밍합니다. 하지만 [COM 개체] (https://de.mathworks.com/help/matlab/using-com-objects-in-matlab.html) 사용에 대한 MATLAB 사이트의 설명서를 찾았습니다 ... – xMRi
불행히도 IEnumVariant는 아닙니다. Matlab에서 지원되므로 막 다른 골목처럼 보입니다 –