# Ordering vectors of numbers of type double and strings according to another vector

조회 수: 3(최근 30일)
L'O.G. 2022년 12월 7일
답변: Eric Delgado 2022년 12월 7일
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.

댓글을 달려면 로그인하십시오.

### 채택된 답변

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)
string_1_reordered = 1×6 cell array
{'pears'} {'apples'} {'plums'} {'peaches'} {'oranges'} {'grapes'}

댓글을 달려면 로그인하십시오.

### 추가 답변(1개)

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)
string_2 = 1×6 cell array
{'pears'} {'apples'} {'plums'} {'peaches'} {'oranges'} {'grapes'}

댓글을 달려면 로그인하십시오.

### 범주

Find more on String Parsing in Help Center and File Exchange

R2021b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by