对对象数组进行排序
_
classdef SimpleClass
properties
id
numlegs
end
methods
function obj = SimpleClass(id,numlegs)
if nargin > 0
obj.id = id;
obj.numlegs = numlegs;
end
end
end
end
_
chairs = SimpleClass.empty(20,0);
for ii = 1:20
chairs(ii) = SimpleClass(ii, randi(4,1));
end
[~, ind] = sort([chairs.numlegs]);
chairs_sorted = chairs(ind);
输出
_
>> [chairs_sorted.numlegs]
ans =
Columns 1 through 10
1 1 1 1 1 1 1 1 2 3
Columns 11 through 20
3 3 3 3 3 3 3 4 4 4
>> [chairs_sorted.id]
ans =
Columns 1 through 10
3 5 8 9 10 11 17 19 12 1
Columns 11 through 20
2 4 6 7 14 15 20 13 16 18
对结构数组进行排序
chairs = struct('id',num2cell(1:20), 'numlegs',num2cell(randi(4, 1, 20)));
[~, ind] = sort([chairs.numlegs]);
chairs_sorted = chairs(ind);