Ordering vectors of numbers of type double and strings according to another vector
1 回表示 (過去 30 日間)
古いコメントを表示
How do I order the following arrays?
vector_1 = [1 3 7 8 9 10];
string_1 = {'apples' 'pears' 'plums' 'oranges' 'peaches' 'grapes'};
Specifically, I want to re-order them according to [3 1 7 9 8 10] for vector_1.
0 件のコメント
採用された回答
Voss
2022 年 12 月 7 日
vector_1 = [1 3 7 8 9 10];
string_1 = {'apples' 'pears' 'plums' 'oranges' 'peaches' 'grapes'};
vector_1_reordered = [3 1 7 9 8 10];
[~,idx] = ismember(vector_1_reordered,vector_1);
string_1_reordered = string_1(idx)
0 件のコメント
その他の回答 (1 件)
Eric Delgado
2022 年 12 月 7 日
You could write a simple loop...
string_1 = {'apples' 'pears' 'plums' 'oranges' 'peaches' 'grapes'};
vector_1 = [1 3 7 8 9 10];
vector_2 = [3 1 7 9 8 10];
idx = [];
for ii = 1:numel(vector_1)
idx(ii) = find(vector_1 == vector_2(ii), 1);
end
string_2 = string_1(idx)
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Characters and Strings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!