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

1 ビュー (過去 30 日間)
Mike Mierlo van 2019 年 9 月 27 日
コメント済み: the cyclist 2019 年 9 月 27 日
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;
L = 400;
for x = 100 : 150
t_operation(x)=max(t_tank1(x),t_tank2(x));
end
plot(x,t_operation)

サインインしてコメントする。

### 採用された回答

the cyclist 2019 年 9 月 27 日

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_operation(x)=max(t_tank1(x),t_tank2(x));
plot(xrange,t_operation(xrange))
##### 5 件のコメント表示非表示 4 件の古いコメント
the cyclist 2019 年 9 月 27 日
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.

サインインしてコメントする。

### Community Treasure Hunt

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

Start Hunting!

Translated by