How can I plot sin(x),sin(2x),...,sin(nx) for an input n all on the same graph? Matrix dimensions must agree error
14 views (last 30 days)
Show older comments
Colm Murphy
on 23 Oct 2019
Answered: Navadeep Ganesh U
on 30 Nov 2019
I'm trying to plot sin(x) and sin(2x) and 3x and so on up to sin(nx) all on the same graph. My code right now is as follows.
x=[-2*pi:pi/64:2*pi];
i = input('Enter a positive whole number: \n');
z=[1:i];
y=sin(x.*z);
for z = [1:i]
plot(x,y);
end
It's giving me an error saying:
Matrix dimensions must agree.
Error in lab5_exercise2 (line 9)
y=sin(x.*z);
0 Comments
Accepted Answer
Image Analyst
on 23 Oct 2019
Put the y= statement inside the loop:
x = -2*pi : pi/64 : 2*pi;
n = input('Enter a positive whole number: ');
for z = 1 : n
y = sin(x.*z);
plot(x,y, '.-');
hold on;
end
grid on;
xlabel('x', 'FontSize', 15);
ylabel('Y', 'FontSize', 15);
More Answers (2)
James Tursa
on 24 Oct 2019
Modifying your original code without a loop:
x=[-2*pi:pi/64:2*pi];
i = input('Enter a positive whole number: \n');
z=[1:i]'; % make this a column vector
y=sin(x.*z); % use implicit expansion
plot(x,y); % no need for a loop
grid on
0 Comments
See Also
Categories
Find more on Surface and Mesh Plots in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!