Overlaying three functions on a single plot

% Peter Daniel Bohlen
% Mech3080 hw2
% Part 2E
t = 0: 0.01:6;
x = (6 * exp(-0.5 * t)) * cos((5 * pi * t) + (pi/4));
y = -1.5 * sin(5.5 * pi *t);
z = (6 * exp(-0.5*t))* cos((5 * pi *t) + (pi/4)) - (1.5 * sin(5.5 * pi *t));
plot (t,x)
plot(t,y)
plot(t,z)
grid on
xlabel 'Time (sec)'
ylabel 'Displacement (in)'
title 'Homework 2 Part 2E - Displacement vs. Time'
it is returning an error of this :
Error in hw2part2E (line 6)
x = (6 * exp(-0.5 * t)) * cos((5 * pi * t) + (pi/4));

 采纳的回答

To avoid the error, use element-wise multiplication (.*), because * is for matrix multiplication.
To plot multiple functions in a single plot, use hold on.
% Peter Daniel Bohlen
% Mech3080 hw2
% Part 2E
t = 0: 0.01:6;
x = (6 * exp(-0.5 * t)) .* cos((5 * pi * t) + (pi/4));
% ^^ element-wise
y = -1.5 * sin(5.5 * pi *t);
z = (6 * exp(-0.5*t)).* cos((5 * pi *t) + (pi/4)) - (1.5 * sin(5.5 * pi *t));
% ^^ element-wise
figure
hold on
plot (t,x)
plot(t,y)
plot(t,z)
grid on
xlabel 'Time (sec)'
ylabel 'Displacement (in)'
title 'Homework 2 Part 2E - Displacement vs. Time'

3 个评论

In this case, since the x, y, and z vectors are all defined in terms of the same vector t, an alternative to using hold on is to plot them all in a single plot call:
% Peter Daniel Bohlen
% Mech3080 hw2
% Part 2E
t = 0: 0.01:6;
x = (6 * exp(-0.5 * t)) .* cos((5 * pi * t) + (pi/4));
y = -1.5 * sin(5.5 * pi *t);
z = (6 * exp(-0.5*t)).* cos((5 * pi *t) + (pi/4)) - (1.5 * sin(5.5 * pi *t));
plot(t,[x; y; z].')
grid on
xlabel 'Time (sec)'
ylabel 'Displacement (in)'
title 'Homework 2 Part 2E - Displacement vs. Time'
You're welcome! Any questions, let me know. Otherwise, please "Accept" this answer. Thanks!

请先登录,再进行评论。

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by