2016-07-22 2 views
3

현재 이미지 이름을 나열하는 두 개의 단일 필드 Matlab 구조체가 있습니다. 비 = 무력 방법이 있나요두 개의 단일 필드 Matlab 구조체를 사용하여 공용체를 수행하는 방법

ab(1) = 'aa.jpg' 
ab(2) = 'bb.jpg' 
ab(3) = 'cc.jpg' 

:

a(1).img = 'aa.jpg' 
a(2).img = 'bb.jpg' 

b(1).img = 'bb.jpg' 
b(2).img = 'cc.jpg' 

즉 AB 가치를 가질 수 있도록 내가 좋아하는 것 - 나는 전혀 중복으로 하나의 구조체로 결합하고 싶습니다 이러는거야?

답변

3

쉼표로 구분 된 목록과 unique을 사용하여 각 구조체의 값을 연결하여 고유 한 값을 얻을 수 있습니다. 그런 다음이 값을 struct 함수에 전달하면 값이 포함 된 structs의 배열이 만들어집니다.

S = struct('img', unique({a.img, b.img}, 'stable')) 

실제로 구조체의 출력이 필요하고 바로 고유 값의 셀 어레이를 원하지 않는 경우, 당신은 struct에 대한 최종 호출을 제거 할 수 있습니다.

unique({a.img, b.img}, 'stable') 
+0

'struct ('img', unique ({a.img, b.img}, 'stable'))'? –

+0

@LuisMendo 그뿐 아니라 잘 작동합니다. 아마도 조금 더 깨끗합니다. – Suever

+0

저는 실제로 사용했습니다 :'unique ({a (:) img, b (:) img})' – user1245262