Summation of a series without for loop

2 vues (au cours des 30 derniers jours)
John
John le 28 Déc 2014
Commenté : Iyad Khuder le 12 Nov 2020
Fourier series of a square wave can be represented as:
F(t)=(4/pi)*sum(1/(2k+1)*sin((2k+1)pi*t/T)
Where, sum is over k=0 to inf, T is period = 1. I need to plot F(t) for first 10 terms in the series. I can do this using loops, but is there any way to do this without any loop?

Réponse acceptée

Shoaibur Rahman
Shoaibur Rahman le 28 Déc 2014
Yes you can do this! Use vectorization technique. Try to understand the line F = ... in the following code. If you get any hard time with this, please let me know. This is a great question though.
T = 1; t = -3:0.01:3; % change time vector as what you need
n = 10; k = 0:n-1; % n is the number of terms
F = 4/pi * (1./(2*k+1)) * sin(((2*k+1)'*pi*t)/T);
plot(t,F)
  3 commentaires
Michael Golden
Michael Golden le 15 Mar 2017
Awesome! Many thanks!!
Iyad Khuder
Iyad Khuder le 12 Nov 2020
That's amazing! Many thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by