Need help selecting the max of array A, then selecting corresponding array B
14 次查看(过去 30 天)
显示 更早的评论
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.
0 个评论
采纳的回答
Wayne King
2012-9-18
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 个评论
更多回答(3 个)
Babak
2012-9-18
At the end of your code add these lines:
[maxPE,index] = max(pe);
countryNameMAX = cn(index)
maxPE and countryNameMAX give you what you need.
Wayne King
2012-9-18
编辑:Wayne King
2012-9-18
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
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Shifting and Sorting Matrices 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!