2012-01-23 6 views
6

私はOctaveでセル配列を作成しました。いくつかの列は浮動小数点数を含み、いくつかの列は文字列を含みます。 、Octaveでセル配列を浮動小数点数の列で並べ替えるにはどうすればいいですか?

sortrows (mycellarray, 4); 

しかし、私はによってソートする列は山車の列の場合:私は、このコマンドを使用して、(COL#4と言う)文字列の列でセル配列をソートすることができています

error: sort: only cell arrays of character strings may be sorted 

どのように浮動小数点の列でセル配列をソートする方法を知っていますか?

答えて

6

浮動小数点値を持つ列をベクトルに変換し、ソートしてソートインデックスを取得します。次に、このインデックスをセル配列に適用することができます。オクターブの一部のバージョンで

mycellarray = {'a',1,0.5; 'b',2,0.1; 'c',3,4.5; 'd',4,-3.2}; 
vector2sort=cell2mat(mycellarray(:,3)); 
[~,idx] = sort(vector2sort) 
mycellarraysorted = mycellarray(idx,:); 

しかし、チルダ~オペレータが定義されていません。その場合:

vector2sort = mycellarray(:,3); 
[dummy,idx] = sort(vector2sort); 
mycellarraysorted = mycellarray(idx,:); 
関連する問題