2017-10-12 25 views
1

주어진 클래스의 인스턴스를 많이 생성해야하는 코드를 시작했습니다. 파이썬에서하는 것처럼 배열에 저장하고 싶습니다. 난 그냥 내 목록에 원하는대로 추가 할 수 있기 때문에Matlab에서 클래스의 인스턴스를 생성하고 배열에 저장하려면 어떻게해야합니까?

object_list = []; 
    for i=1:100 
     my_object = MyClass(i) 
     object_list(i) = my_object 
    end 

파이썬에서이 작품 :

이것은 내가하고 싶은 것입니다. Matlab에서 어떻게해야합니까?

/오류는 다음과 같습니다. "MyClass에서 이중으로 변환 할 수 없습니다." Matlab 배열은 일반적인 파이썬 목록과 다르게 동작하며 실제로는 double을 포함해야합니다./

+1

확실히 MATLAB에도 추가 할 수 있지만 추가는 실제로 좋은 생각이 아닙니다. 더 나은 접근법은 예상 길이에 미리 할당하는 것입니다. 귀하의 경우에는 셀 배열이 필요합니다. 따라서 예상되는 크기의 셀 배열, 즉'object_list = cell (1,100)'을 초기화하고'object_list (i)'를'object_list {i} '로 대체하십시오. 변경 작업을 수행하는 이유는 오류 메시지에서 제안한 바입니다. (또한 기본값으로 허수를 나타 내기 때문에 변수 이름으로'i' (와'j')를 사용하지 마십시오) –

답변

0

당신은 객체의 배열로 배열을 초기화 할 수 있습니다 Initialize Object Arrays

object_list(100) = MyClass(100); 
for i=1:100 
    object_list(i) = MyClass(i); 
end 

더 많은 정보를.