Info
Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
Hey need assistance with fourier analysis questions
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
function [x,f]=my_Fourier_series_generator(T,a0,an,bn,xrange,max_N)
x=linspace(xrange(1),xrange(2),1000);
% frequency wn
w=2*pi/T;
% initializing f at a0
f=a0;
syms n;
% Fourier series implementation
for n=1:max_N
aa=eval(an);
bb=eval(bn);
f=f+aa*cos(w*n*x)+bb*sin(w*n*x);
end
plot(x,f)
this is the code im trying to run
solution(1, 1/2, (2/(n*pi))*sin((n*pi)/2), 0, 0:10:200, 300)
this is the error I keep receiving
Error using eval
Must be a string scalar or character vector.
Error in solution (line 17)
bb=eval(bn);
0 Kommentare
Antworten (1)
Walter Roberson
am 14 Apr. 2018
You are passing (2/(n*pi))*sin((n*pi)/2) in the position you call an . You ask to eval(an), so you are asking to eval((2/(n*pi))*sin((n*pi)/2)) . However, eval() can only work on string objects or character vectors.
The likelihood that you are using eval() appropriately is... rather low. You should probably be passing in function handles and evaluating the function handles. Like
aa = an(n)
after you have passed in
@(n) (2/(n*pi))*sin((n*pi)/2)
in that position.
2 Kommentare
Christopher Carey
am 14 Apr. 2018
Bearbeitet: Walter Roberson
am 14 Apr. 2018
Walter Roberson
am 14 Apr. 2018
I said,
"after you have passed in @(n) (2/(n*pi))*sin((n*pi)/2) in that position".
You have not passed a function handle in that position: you have passed a scalar or vector of values.
Diese Frage ist geschlossen.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!