2016-07-20 2 views
1

구조체 배열의 배열을 반환하는 함수가 있습니다. 이 함수를 반복적으로 호출하여 반환 된 값을 다른 배열에 추가하고 싶지만 반환 된 값을 큰 배열의 단일 요소로 추가하고 싶습니다. cat()은 큰 배열에 반환 된 값의 모든 요소를 ​​개별적으로 추가하기 때문에 저에게 효과적이지 않습니다.배열을 MATLAB의 다른 배열에 단일 요소로 추가하는 방법은 무엇입니까?

bar의 단일 요소로 foobar에 추가하려면 어떻게해야합니까?

foo(1).id = 1; 
foo(1).v = 'a'; 
foo(2).id = 2; 
foo(2).v = 'b'; 

bar = []; 
bar = cat(1, bar, foo); % Adds each element of foo individually 

답변

3

질문을 올바르게 해석하는 경우이 "배열"의 각 요소를 함수에서 반환 한 구조체 배열로 사용하고자합니다. 아래의 코드에서 수행하는 작업은 단순히 더 큰 구조 배열을 만들고 구조 배열의 각 요소를이 큰 구조 배열에 추가하는 것입니다.

아마도 cell arrays을 사용하고 싶을 것입니다. 간단히 말하자면 bar = [];bar = {};으로 변경하십시오. 작업이 완료되면, 당신은 (즉, {}) 중괄호를 사용하여 원하는 곳의 인덱스에 액세스하는 각 요소에 액세스 할 수 있습니다

% Your example data 
foo(1).id = 1; 
foo(1).v = 'a'; 
foo(2).id = 2; 
foo(2).v = 'b'; 

% Add another one for proof of concept 
foo2(1).id = 3; 
foo2(1).v = 'c'; 
foo2(2).id = 4; 
foo2(2).v = 'd'; 

bar = {}; % Change 
bar = cat(1, bar, foo); 
bar = cat(1, bar, foo2); % Add another nested structure array in 

baz = bar{1}; % Get the first nested structure array 
baz2 = bar{2}; % Get the second nested structure array 
+1

예, 사람이 배열은 객체에 의해 색인 꽃밥 언어에서 오는에 대한 (배열 내의 배열은 행렬 "행"이라기보다는 하나의 객체로 해석됩니다. 셀 배열은 당신의 구세주입니다. – Anonymous

+0

@jphollowed 감사합니다 :) upvote는 어긋나지 않을 것입니다 : D ... 물론 선택 사항. – rayryeng

+0

아, 여기 가져 가라. – Anonymous

관련 문제