Error plotting my graph.

This is my code. The error is: Error using plot Data must be numeric, datetime, duration or an array convertible to double. I am not sure what is causing this.
t = [0:0.1:6*pi];
syms k omega t
S1 = symsum(cos(2*k*omega*t)/(4*k^2 - 1) , k,[1; Inf]);
y = 1/pi + 0.5*sin(omega*t) - (2/pi)*S1;
plot(t,y)

3 个评论

Greg
Greg 2017-12-4
编辑:Greg 2017-12-4
What data type (class) is the variable you're trying to plot?
y should just be a number(float) dependent on t. Then im plotting against multiple values of t so a vector?
Greg
Greg 2017-12-4
编辑:Greg 2017-12-4
class(y)
"Vector" is not a data type, it's a shape.

请先登录,再进行评论。

回答(1 个)

Use fplot (with a single value for ‘omega’) or fsurf (with a range of values for ‘omega’).
This works:
syms k omega t
S1 = symsum(cos(2*k*omega*t)/(4*k^2 - 1) , k,[1; Inf]);
y(t,omega) = 1/pi + 0.5*sin(omega*t) - (2/pi)*S1;
fplot(y(t, pi/6), [0 6*pi])
I tried fsurf as well, however it takes forever so I stopped it.

类别

帮助中心File Exchange 中查找有关 2-D and 3-D Plots 的更多信息

产品

标签

Community Treasure Hunt

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

Start Hunting!

Translated by