Clear Filters
Clear Filters

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

1 view (last 30 days)
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

Accepted Answer

Walter Roberson
Walter Roberson on 22 Feb 2011
[cheapest, cheapidx] = min(cost);

More Answers (2)

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

Paulo Silva
Paulo Silva on 22 Feb 2011
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

Categories

Find more on External Language Interfaces in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!