How do I remove duplicates from a structure array?
Ältere Kommentare anzeigen
Suppose I create the following structure:
animals(1).name='Northern Mockingbird';
animals(1).class='Bird';
animals(2).name='Cheetah';
animals(2).class='mammal';
animals(3).name='Wolf';
animals(3).class='mammal';
animals(4).name='Eagle';
animals(4).class='Bird';
animals(5).name='Turtle';
animals(5).class='Reptile';
animals(6).name='Bee';
animals(6).class='Insect';
animals(7).name='Chameleon';
animals(7).class='Reptile';
animals(8).name='Barn Spider';
animals(8).class='Arachnid';
animals(9).name='Ant';
animals(9).class='Insect';
animals(10).name='Northern Cardinal';
animals(10).class='Bird';
Then I set animals(11) equal to animals(4), then I sort the whole thing through a littany of conversions/reshapings, the sortrows command and another littany of conversions/reshapings.
Is there some way to remove the duplicate entries from that array of structures?
Akzeptierte Antwort
Weitere Antworten (1)
Jonathan Sullivan
am 16 Mai 2013
It's not pretty, but this should work:
isUnique = true(size(animals));
for ii = 1:length(animals)-1
for jj = ii+1:length(animals)
if isequal(animals(ii),animals(jj))
isUnique(ii) = false;
break;
end
end
end
animals(~isUnique) = [];
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!