how to find max value of a function with a for loop
2 views (last 30 days)
Show older comments
Abdur Rahman Hashmi
on 10 Feb 2020
Edited: Abdur Rahman Hashmi
on 10 Feb 2020
Hi,
I have a vector x and a vector y with both vectors having 10 elements and I have a function which uses a for loop to give a value to a variable e with each respective value of y and x. The for loop works as such;
for i=1:length(x)
e=y(i)-(m*x(i)+b)
end
and I want to display only the max value of e in the command window and the respective x and y elements that correspond to it. How would I do this?
0 Comments
Accepted Answer
James Tursa
on 10 Feb 2020
Make e a vector. E.g.,
for i=1:length(x)
e(i) = y(i) - (m*x(i)-b); % <-- Are you sure that isn't supposed to be (m*x(i) + b) with a plus?
end
Then use the max function:
[E,Z] = max(abs(e));
E will contain the max (abs), and Z will contain the index of the max, so
e(Z) is the max (abs)
x(Z) is the x of the max
y(Z) is the y of the max
More Answers (1)
Sindar
on 10 Feb 2020
Loop isn't necessary unless you can't store the data in memory:
e=y-(m*x-b);
[e_max,idx] = max(e);
x_max = x(idx);
y_max = y(idx);
0 Comments
See Also
Categories
Find more on Loops and Conditional Statements 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!