Plotting a unit step function without heaviside.
古いコメントを表示
So for my class I need to be able to plot
Xg(t)= u(t+1)-2u(t-1)+u(t-3)
Xh(t)=(t+1_u(t-1)-tu(t)-u(t-2)
and a whole other host of things but for these ones I'm confused on how to do it without the heaviside function. I got an answer for just u(t) was:
t = (-1:0.01:5)';
unitstep = t>=0;
plot(t,unitstep)
This worked.
When I tried to get it to shift instead the line became more of a ramp function.
t = (-1:0.01:5)';
unitstep = t>=0;
u1 = unitstep.*(t+1)
plot(t,u1)
What am I doing wrong?
2 件のコメント
Ulfah Nizam
2018 年 12 月 19 日
what does 0.01 means in
t =(-1:0.01:5)';
Adam Turton
2019 年 10 月 3 日
Matlab has an issue with jump discontinuities, so 0.01 makes it so that it "updates" the function to the correct placement, allowing what would otherwise plot as a ramp function to show as a near vertical line.
採用された回答
その他の回答 (3 件)
Les Beckham
2017 年 2 月 6 日
You are very close to the first half of your goal.
Your line of code
Ut= unitstep+unitstep2+unitstep3;
should, I believe, reflect what you are calling Xg in your original problem. You might want to rename it to help you remember the connection between the code and the original equation. Also, you need to look at what the multipliers/coefficients are in your original Xg definition. u(t-1), which you are calling unitstep2 in your code, is multiplied by -2 when assembling the total Xg. This is not reflected in your code.
I think you can figure it out from here.
abdelkader omr
2024 年 7 月 17 日
0 投票
I want to plot a unit step function
x axis represenets time and its value [0 1 2 3 4 5 6 7]
y axis represents load and its value are[2 2 3 3 3 3 2 2]
Your function looks somewhat like a Boxcar function. However, your description of the continuous-time function is slightly unclear because they are discrete values. There are simpler methods for continuous-time, but since yours are discrete values, perhaps you may consider flexibly creating the function as follows:
%% Boxcar function
function y = boxcar(x, params)
for i = 1:length(x)
if x(i) <= params(1)
y(i) = 2;
elseif x(i) <= params(2)
y(i) = 2;
elseif x(i) <= params(3)
y(i) = 2;
elseif x(i) <= params(4)
y(i) = 3;
elseif x(i) <= params(5)
y(i) = 3;
elseif x(i) <= params(6)
y(i) = 3;
elseif x(i) <= params(7)
y(i) = 2;
elseif x(i) <= params(8)
y(i) = 2;
else
y(i) = 2;
end
end
end
%% Plot the function
x = linspace(0, 10, 1001);
y = boxcar(x, [0 1 2 3 4 5 6 7]);
plot(x, y, 'linewidth', 2), grid on, ylim([1 4])
xlabel('Time'), ylabel('Load'), title('Boxcar function')
カテゴリ
ヘルプ センター および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

