Info
此问题已关闭。 请重新打开它进行编辑或回答。
How to display my answer with out rewriting them?
2 次查看(过去 30 天)
显示 更早的评论
Hello all,
I have my code below that finds the min_max of my function.
I would like for it to displapy all the min_max.
When i run the code it only does the last min_max.
How would I stop it from overwiting the previous min_max?
x = 0:0.1:10;
y = x.^(101/100)+4*cos((3*pi*x)/4)-2*sin((2*pi*x)/3)-0.25;
function minmax_ind = min_max(y)
for i = 2:(length(y)-1)
if (y(i-1) > y(i)) && (y(i+1) > y(i)) % if this is true, we have found a local minimum
minmax_ind = i;
elseif (y(i-1) < y(i)) && (y(i+1) < y(i)) % if this is true, we have found a local maximum
minmax_ind = i;
end
end
end
Thank you,
Nick
0 个评论
回答(1 个)
Robin Kirsch
2020-10-18
编辑:Robin Kirsch
2020-10-18
You are overwriting minmax_ind every time. If you find a local max, you will overwrite it if you find another one. I hope this is what you meant, I did not test the function due to it being correct by finding the min and max of the array.
You can fix this if u add another variable just like this
function minmax_ind = min_max(y)
j = 1;
for i = 2:(length(y)-1)
if (y(i-1) > y(i)) && (y(i+1) > y(i)) % if this is true, we have found a local minimum
minmax_ind(j) = i;
j = j +1;
elseif (y(i-1) < y(i)) && (y(i+1) < y(i)) % if this is true, we have found a local maximum
minmax_ind(j) = i;
j = j +1;
end
end
end
1 个评论
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!