Why does my plot not display the 50 values of t_operation?

1 vue (au cours des 30 derniers jours)
Mike Mierlo van
Mike Mierlo van le 27 Sep 2019
Commenté : the cyclist le 27 Sep 2019
I want to plot t_operation for 100<x<150. I tried this code, but it does not work. I do not understand why.
clear all; close all; clc;
hold on
v_tank = 40;
v_trailertank = 80;
v_trailer = 100;
t_loading = 1/12;
t_unloading = 1/12;
L = 400;
for x = 100 : 150
t_tank1(x)=(t_loading+(x/v_trailertank)+t_unloading)+((L-x)/v_tank);
t_tank2(x)=(t_loading+(x/v_trailertank)+t_unloading)+x/v_trailer+(t_loading+L/(v_trailertank)+t_unloading);
t_operation(x)=max(t_tank1(x),t_tank2(x));
end
plot(x,t_operation)
Please help.

Réponse acceptée

the cyclist
the cyclist le 27 Sep 2019
Modifié(e) : the cyclist le 27 Sep 2019
The reason is that when you reach that plotting statement, x is simply the last value of your loop. Try this:
xrange = 100:150;
plot(xrange,t_operation(xrange))
FYI, you can write that code in vectorized fashion, without using the for loop at all:
xrange = 100 : 150;
t_tank1(x)=(t_loading+(x/v_trailertank)+t_unloading)+((L-x)/v_tank);
t_tank2(x)=(t_loading+(x/v_trailertank)+t_unloading)+x/v_trailer+(t_loading+L/(v_trailertank)+t_unloading);
t_operation(x)=max(t_tank1(x),t_tank2(x));
plot(xrange,t_operation(xrange))
  5 commentaires
Mike Mierlo van
Mike Mierlo van le 27 Sep 2019
Never mind: I already found it out. It works with: X_min=find(t_operation(x)==t_operationmin)
the cyclist
the cyclist le 27 Sep 2019
You can do the same thing more efficiently with
[t_operationmin, x_min_index] = min(t_operation(x))
But be careful. The find command will tell you which element (e.g. the "5th element in the vector"), not the actual value of x that that corresponds to. I think you'll need x(x_min_index) for that. For example, in your case, the 5th element of x would be the value x=100004.
As Steven pointed out, you are using x in an odd way, as both an index and a variable. So you need to be careful.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by