How can I know what element a value came from in a vector?

1 次查看(过去 30 天)
I just started using Matlab. I found my minimum value of a given vector, but I need to know what the corresponding value is in another vector. Is there a way to know where the exact element is?
I need to know my "r" value for the cheapest.
v=600;
r=[1:.1:100];
h=(v-2.*pi.*((r.^3)./3))./(pi.*r.^2);
cost=(400.*(2.*pi.*r.*h))+(600.*(2.*pi.*r.^2));
cheapest=min(cost)
cheapest =
1.4825e+005

采纳的回答

Walter Roberson
Walter Roberson 2011-2-22
[cheapest, cheapidx] = min(cost);

更多回答(2 个)

Oleg Komarov
Oleg Komarov 2011-2-22
Use the second output of min:
[cheapest, pos] = min(cost);
r(pos)
Oleg

Paulo Silva
Paulo Silva 2011-2-22
v=600;
r=[1:.1:100];
h=(v-2.*pi.*((r.^3)./3))./(pi.*r.^2);
cost=(400.*(2.*pi.*r.*h))+(600.*(2.*pi.*r.^2));
cheapest=min(cost);
Minr=r(cost==cheapest) %The r value that minimizes the cost function
%check if the value is correct on a figure
clf
hold on
plot(r,cost) %draw the cost function
plot(Minr,cheapest,'rx') %mark the minimum value
axis([0 10 0 5e5])
grid on

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by