私はMATLABのカラーヒストグラムの交点を使って画像検索システムを使っています。このメソッドは私に以下のデータを与えます:ヒストグラムの交点距離を表す実数と画像ファイル名。それらは異なるデータ型であるため、2つのフィールドを持つ構造体配列に格納してから、この構造体を.matファイルに保存します。今度は、ヒストグラムの交点距離が最も大きい画像を検索するために、この構造をヒストグラムの交点距離に従って降順で並べ替える必要があります。私はこのデータをソートするために多くの方法を試みましたが、結果はありませんでした。この問題を解決するのを手伝ってください。MATLABで構造体配列をソートする方法は?
10
A
答えて
12
はここで機能MAXを使用しての代わりに、並べ替えすること、あなたがこれを行うことができる方法の一例です:
%# First, create a sample structure array:
s = struct('value',{1 7 4},'file',{'img1.jpg' 'img2.jpg' 'img3.jpg'});
%# Next concatenate the "value" fields and find the index of the maximum value:
[maxValue,index] = max([s.value]);
%# Finally, get the file corresponding to the maximum value:
maxFile = s(index).file;
EDIT:あなたはNの最高値を取得したい場合は、だけではなく、 MAXの代わりにSORTを使用できます(as Shaka suggested)。たとえば(上記の構造を使用):
>> N = 2; %# Get two highest values
>> [values,index] = sort([s.value],'descend'); %# Sort all values, largest first
>> topNFiles = {s(index(1:N)).file} %# Get N files with the largest values
topNFiles =
'img2.jpg' 'img3.jpg'
15
構造全体をソートすることもできます。 ... gnoviceの例のオフあなたにも使用することができます
% Create a structure array
s = struct('value',{1 7 4},'file',{'img1.jpg' 'img2.jpg' 'img3.jpg'});
% Sort the structure according to values in descending order
% We are only interested in the second output from the sort command
[blah, order] = sort([s(:).value],'descend');
% Save the sorted output
sortedStruct = s(order);
+0
注:ソートするには、次のように入力します。ファイル名(または任意の文字列)を指定すると、 '[〜、order] = sort({s.file});'、次に 'sortedStruct = s(order);'となります。 Matlabの将来のバージョンで実装されるまで、 '' descend''を使用することはできません。 –
関連する問題
- 1. MATLAB構造体配列は
- 2. MATLABで構造体配列のメンバシップをテストする方法は?
- 3. Cで構造体の配列をソートする方法は?
- 4. 構造体の配列内で構造体の配列をソートする
- 5. MatLab - 構造体とフィールド配列
- 6. 構造体の構造体の配列を初期化する方法は?
- 7. qsort()を使って構造体の配列をソートする方法は?
- 8. MATLABの構造体配列に構造体を割り当てる
- 9. C#で構造体の配列を整列する方法は?
- 10. 構造体の配列 - 構造体?
- 11. PythonバージョンのMATLAB構造体配列とは何ですか?
- 12. Goの構造体の配列に構造体を追加する方法
- 13. matlabに似たpython構造体配列の使い方
- 14. 構造体の構造体配列をvbaからc-dllに渡す方法
- 15. クラスオブジェクトで配列構造体を埋める方法は?
- 16. 私の構造体型で配列を作る方法は?
- 17. 構造体の配列を別の構造体にネストする
- 18. 配列へのアクセス方法配列の内部構造C++の構造体?
- 19. c#構造体の配列を配列の構造体に変換する方法
- 20. 構造体配列をスライスする方法は?
- 21. 構造体のconst配列を作成する方法は?
- 22. 構造体(配列内部)を操作する方法は?
- 23. 構造体の配列をC++でターゲットにする方法
- 24. 構造体または配列構造の配列パフォーマンス
- 25. 構造体配列の構造
- 26. Pythonの構造体内にmatlab構造体をインポートする
- 27. C#構造体の理解 - 構造体の配列の作成方法?
- 28. 配列を含む構造体をバイト配列に変換する方法は?
- 29. 構造体の配列を返す方法は?
- 30. [1x4構造体]の要素の配列を持つMatlabのarrayfun
を構築するには
**猫(1、s.value)**返事をどうもありがとうございます – Amro
値を連結するために、私がしようとしますこの機能を使用する。私のmatlab codを送るためにあなたのメールアドレスを取得できますか? ありがとう –
@zenab:私のメールアドレスは私のプロフィールにあります。あなたが直接議論したいことがあれば、私には気をつけてください。 – gnovice