2014-10-11 3 views
0

MATLAB이 컴파일 된 C++ 코드에 대해 셀 배열을 사용하지 않는다고하는 성가신 제한을 지키는 데 어려움을 겪고 있습니다.객체 목록에 대한 셀 배열 피하기

대부분의 경우, 일부 MATLAB 개체를 사용하는 코드가 있으며이 개체의 인스턴스가 여러 개 있어야합니다. 이것은 셀 배열을 사용하면 충분히 간단하지만 사용 방법을 피할 수는 없습니다.

이렇게하는 간단한 코드는 다음과 같습니다. 나는 코드 컴파일의 가능성과 더 효율적인 메모리 할당을 위해 셀 배열을 모두 없애려고 노력하고있다.

function surf_pts = foo(images) 
surf_pts = cell(size(images,3),1); 
for i = 1 : size(images,3) 
    surf_pts{i} = detectSURFFeatures(images(:,:,i)); 
end 

답변

1

다음과 같이 구조체의 배열을 사용할 수 있습니다

function surf_pts = foo(images) 

surf_pts = struct('Pts',[]); 
surf_pts(1:size(images,3),1)=surf_pts; 

for i = 1 : size(images,3) 
    surf_pts(i).Pts= detectSURFFeatures(images(:,:,i)); 
end