How can I plot sin(x),sin​(2x),...,s​in(nx) for an input n all on the same graph? Matrix dimensions must agree error

조회 수: 10 (최근 30일)
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);

채택된 답변

Image Analyst
Image Analyst 2019년 10월 23일
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);

추가 답변 (2개)

James Tursa
James Tursa 2019년 10월 24일
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

Navadeep Ganesh U
Navadeep Ganesh U 2019년 11월 30일
use "hold on" for keeping plots.

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by