필터 지우기
필터 지우기

Finding the maximum y value for one graph

조회 수: 18 (최근 30일)
Oskar
Oskar 2017년 12월 15일
답변: Star Strider 2017년 12월 15일
I have created 2 graphs for my code but when I try to find the maximum y value I get the same answer for both graphs (it's the highest y value from the second graph both times as that has the highest y value overall).
if true
% code
end
time_period = [0 181324/20000];
initial = [0, 0];
[t,y]=ode45(@myode45function, time_period, initial);
plot(t,y(:,1)),title('Graph of y against t')
xlabel('t')
ylabel('y')
ymax=max(y(:,1));
disp(ymax)
Figure;
plot(t,y(:,2)),title('Graph of dy/dt against t')
xlabel('t')
ylabel('dy/dt')
ymax2=max(y(:,1));
ymax1=max(y(:,2));
disp('The maximum value of dy/dt is: ')
disp(ymax1)
disp('The corresponding value of t is: ')
ymax2=max(y(:,1));
disp(ymax2)

채택된 답변

Star Strider
Star Strider 2017년 12월 15일
I cannot run your code because I do not have your ODE function. However when I create an ODE function to work with it, you code appears to work.
If you want the index of the first maximum for each, ask max to return both outputs:
[ymax2,imax2] = max(y(:,1));
[ymax1,imax1] = max(y(:,2));
The second one is the index where the first maximum occurs. You can correctly reference the corresponding time that way:
ymax2=max(y(imax1,1));

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Directed Graphs에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by