Matlab中函数的绘图
我需要在Matlab中绘制此函数: 线路必须连接,我的意思是在递减线路的末尾,递增线路必须开始,等等。它看起来像这样:Matlab中函数的绘图,matlab,function,graph,Matlab,Function,Graph,我需要在Matlab中绘制此函数: 线路必须连接,我的意思是在递减线路的末尾,递增线路必须开始,等等。它看起来像这样: t = linspace(0,10,1001); 有什么想法吗?我需要一个很宽的间隔,例如t从0变为10,它不能按预期工作的原因是,对于在0.1秒的倍数之间绘制的每条曲线,没有正确计算y-截距,因此曲线没有放在正确的位置。对于曲线的第一部分,y=-57.5t,y-截距位于原点,因此曲线是y=-57.5t。但是,当到达0.1秒时,您需要为这条新线求解y-截距,因为它已经偏
t = linspace(0,10,1001);
有什么想法吗?我需要一个很宽的间隔,例如t从0变为10,它不能按预期工作的原因是,对于在
0.1
秒的倍数之间绘制的每条曲线,没有正确计算y
-截距,因此曲线没有放在正确的位置。对于曲线的第一部分,y=-57.5t
,y
-截距位于原点,因此曲线是y=-57.5t
。但是,当到达0.1
秒时,您需要为这条新线求解y
-截距,因为它已经偏移了。具体而言:
y = 42.5t + b
我们知道,在t=0.1
秒时,y=-5.75
给定上一条曲线。求解y
-截距可以得到:
-5.75 = (42.5)(0.1) + b
b = -10
因此,在
0.1s之间,您确定预期的绘图将与您的图形相似吗?如果该函数仅为0和0.2之间的t定义,那么当t>0.2时是什么?@etf-它不能按预期工作的原因是,当您每移动一次0.1s
的行时,您没有考虑y
-截距。我会写一个答案来解释这一点。这是我的阴谋0@etf-没关系:)你只需要一点数学知识。这是一个需要解决的有趣问题,我已经给出了答案。祝你好运@etf-我的荣幸!这是一个需要解决的有趣问题。。。我只需要提供一个答案:)祝你好运,谢谢你接受我的答案!
y = -57.5t + b
-1.5 = -(57.5)(0.2) + b
b = 10
t = linspace(0,10,1001);
m = [-57.5 repmat([42.5 -57.5], 1, 50)];
y = zeros(1,101);
y(2:2:101) = 1;
y = 10*cumsum(y);
y(2:2:101) = -y(2:2:101);
%// Define time vector
t = linspace(0,10,1001);
%// Define slopes
m = [-57.5 repmat([42.5 -57.5], 1, 50)];
%// Define y-intercepts
y = zeros(1,101);
y(2:2:101) = 1;
y = 10*cumsum(y);
y(2:2:101) = -y(2:2:101);
%// Calculate the output curves for each segment
out = zeros(1, numel(t));
for idx = 1 : numel(y)-1
%// Compute where in the time array and output array
%// we need to write to
vals_to_access = (idx - 1)*10 + 1 : idx*10;
%// Create the curve for this segment
out(vals_to_access) = m(idx)*t(vals_to_access) + y(idx);
end
%// Copy second last value over to last value
out(end) = out(end-1);
%// Plot the curve
plot(t,out);
axis tight;