Need help selecting the max of array A, then selecting corresponding array B

n=input('How many countries will be evaluated? ')
for k=1:1:n
%cn=country name
cn(k)={input('Enter Country name: ','s')};
%we=wind energy
we(k)=input('Enter Generated Wind Energy, in TWh ');
%te=total energy
te(k)=input('Enter Total Electrical Energy, in TWh ');
%pe=percent of energy
pe(k)=we(k)*100/te(k);
end
So in this case the two important arrays are pe and cn, or percent of energy and country name.
I need the program to evaluate the array pe and find the max; then find the country name that it corresponds too. I'm really at a loss for how to accomplish this!
Any help/insight is appreciated.

 Réponse acceptée

The problem is the 's' at the end of your fprintf() statement
printf('\n The country with the lowest percentage of wind energy is %s with %2.2f \n',countrynameMIN,minpe)

2 commentaires

YES! Thank you!
I thought the 's' was required when you were calling a string?
No, here the string is taken care of with your %s

Connectez-vous pour commenter.

Plus de réponses (3)

At the end of your code add these lines:
[maxPE,index] = max(pe);
countryNameMAX = cn(index)
maxPE and countryNameMAX give you what you need.

1 commentaire

[maxpe,index] = max(pe);
countrynameMAX=cn{index};
fprintf('\n The country with the highest percentage of wind energy is %s with %.2f',countrynameMAX,maxpe,'s')
%Calculating minimmum value of PE, indexing, then using index to find
%corresponding country value.
[minpe,index] = min(pe);
countrynameMIN=cn{index};
fprintf('\n The country with the lowest percentage of wind energy is %s with %.2f',countrynameMIN,minpe,'s')
But the output is;
<<The country with the highest percentage of wind energy is Spain with 92.25
The country with the highest percentage of wind energy is s with
The country with the lowest percentage of wind energy is sweoi with 3.67
The country with the lowest percentage of wind energy is s with
The average percent of wind energy for all 4 countries is 58.98
What happened?
You guys were both really quick to reply. I think it's awesome and really appreciate the help.

Connectez-vous pour commenter.

Wayne King
Wayne King le 18 Sep 2012
Modifié(e) : Wayne King le 18 Sep 2012
What about just
[maxval,index] = max(pe);
cn{index}
By using cn{index} you get the country back as a string -- a character array. Using
cn(index)
you get the country back as a 1x1 cell array

1 commentaire

[maxpe,index] = max(pe);
countrynameMAX=cn{index};
fprintf('\n The country with the highest percentage of wind energy is %s with %.2f',countrynameMAX,maxpe,'s')
%Calculating minimmum value of PE, indexing, then using index to find
%corresponding country value.
[minpe,index] = min(pe);
countrynameMIN=cn{index};
fprintf('\n The country with the lowest percentage of wind energy is %s with %.2f',countrynameMIN,minpe,'s')
But the output is;
<<The country with the highest percentage of wind energy is Spain with 92.25
The country with the highest percentage of wind energy is s with
The country with the lowest percentage of wind energy is sweoi with 3.67
The country with the lowest percentage of wind energy is s with
The average percent of wind energy for all 4 countries is 58.98
What happened?
You guys were both really quick to reply. I think it's awesome and really appreciate the help.

Connectez-vous pour commenter.

Michael
Michael le 18 Sep 2012
Modifié(e) : Michael le 18 Sep 2012
[maxpe,index] = max(pe);
countrynameMAX=cn{index};
fprintf('\n The country with the highest percentage of wind energy is %s with %.2f',countrynameMAX,maxpe,'s')
%Calculating minimmum value of PE, indexing, then using index to find
%corresponding country value.
[minpe,index] = min(pe);
countrynameMIN=cn{index};
fprintf('\n The country with the lowest percentage of wind energy is %s with %.2f',countrynameMIN,minpe,'s')
But the output is;
<<The country with the highest percentage of wind energy is Spain with 92.25
The country with the highest percentage of wind energy is s with
The country with the lowest percentage of wind energy is sweoi with 3.67
The country with the lowest percentage of wind energy is s with
The average percent of wind energy for all 4 countries is 58.98
What happened?
You guys were both really quick to reply. I think it's awesome and really appreciate the help.

Catégories

En savoir plus sur Operators and Elementary Operations dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by