それぞれがさまざまなプロパティを持つオブジェクトの配列があり、並べ替える各オブジェクトの特定のプロパティを指定して、配列に対して「並べ替え」を実行する方法を理解したいと思います。
たとえば、オブジェクトが「椅子」であり、numlegs(脚の数)のプロパティで並べ替えたい場合、椅子の配列で並べ替え関数を実行して、それらを番号で並べ替えることができます。彼らが持っている足の数は「sort(chairs、numlegs)」のようです。これを行う方法はありますか?
ありがとう!
_
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);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加