I'm currently working on a project which has numbers assigned to each letter and i'm trying to create an array of each letter with its corresponding number below it so that when i try sorting the numbers from highest to lowest the letters get arranged as well but it's not working out for me here is my code
% code
clc
clear
n=input('please enter the number of mud types you have ');
for i=1:n
x(i)=input('please enter the name of the mud in the order you want ','s');
end
for j=1:n
y(j)=input('please enter the number of the mud in the order you want ');
end
A=[x;y]

1 Comment

Jan
Jan on 17 Mar 2017
Edited: Jan on 17 Mar 2017
What is your question? Assigning strings to "x(i)" must fail, because strings are vectors of type char, while x(i) is a scalar.

Sign in to comment.

 Accepted Answer

Jan
Jan on 17 Mar 2017
Using a cell string would allow to names with more than 1 character also.
n = input('please enter the number of mud types you have ');
Str = cell(1, n); % Pre-allocate!!!
y = zeros(1, n); % Pre-allocate!!!
for k = 1:n
Str{k} = input('please enter the name of the mud in the order you want ','s');
end
for k = 1:n
y(k) = input('please enter the number of the mud in the order you want ');
end
[ySorted, index] = sort(y, 'ascending');
StrSorted = Str(index);

1 Comment

dude you are amazing thank you so much

Sign in to comment.

More Answers (0)

Categories

Asked:

on 17 Mar 2017

Commented:

on 17 Mar 2017

Community Treasure Hunt

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

Start Hunting!