How to plot a graph with a for loop

1 回表示 (過去 30 日間)
Yuvraj Bhagotra
Yuvraj Bhagotra 2021 年 1 月 20 日
コメント済み: Yuvraj Bhagotra 2021 年 1 月 20 日
I have a question where I'm required to create a for loop and then use it to plot a graph. I have n = 0,1,2 ... 10 and need to plot cos(n*pi*x/2) for this. My current code looks like this as I'm trying to store the outputs of the for loop in an array
syms x n b a
nvalues = zeros(1, 10);
for n = 1:11
S = cos((n-1)*pi*x*(1/2));
nvalues(n) = S;
end
nvalues
  1 件のコメント
Mathieu NOE
Mathieu NOE 2021 年 1 月 20 日
hello
simply add to your code - last line :
figure, plot(1:max(n),nvalues)

サインインしてコメントする。

採用された回答

Image Analyst
Image Analyst 2021 年 1 月 20 日
You need to define x with linspace() and then use hold on in the loop:
x = linspace(0, pi/4, 500);
for n = 0 : 10
S = cos(n*pi*x / 2);
%nvalues(n) = S;
plot(x, S, 'LineWidth', 2);
hold on;
end
grid on;
xlabel('x', 'FontSize', 16);
ylabel('S', 'FontSize', 16);
title('11 curves', 'FontSize', 16);
  1 件のコメント
Yuvraj Bhagotra
Yuvraj Bhagotra 2021 年 1 月 20 日
Ah wow thats nice, thanks!

サインインしてコメントする。

その他の回答 (1 件)

Bram Schroeders
Bram Schroeders 2021 年 1 月 20 日
Datapoints = 1000;
x = linspace(0,2*pi,Datapoints);
S = zeros(size(x));
hold all
for n = 1:11
S = cos((n-1)*pi*x*(1/2));
plot(x,S);
end
This should do the trick, you won't need the symbolic toolbox for this.
You can also save all the data by making a matrix out of S.
  1 件のコメント
Yuvraj Bhagotra
Yuvraj Bhagotra 2021 年 1 月 20 日
Brilliant thanks!

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeDiscrete Data Plots についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by