【发布时间】:2015-05-23 19:33:28
【问题描述】:
我是 Matlab 编程新手。我试图弄清楚如何计算以下函数:
我知道我的代码已关闭,我只是想从某种形式的函数开始。我试图在下面的程序中写出函数的总和。
function [g] = square_wave(n)
g = symsum(((sin((2k-1)*t))/(2k-1)), 1,n);
end
任何帮助将不胜感激。
更新:
我现在的代码:
function [yout] = square_wave(n)
syms n;
f = n^4;
df = diff(f);
syms t k;
f = 1; %//Define frequency here
funcSum = (sin(2*pi*(2*k - 1)*f*t) / (2*k - 1));
funcOut = symsum(func, v, start, finish);
xsquare = (4/pi) * symsum(funcSum, k, 1, Inf);
tVector = 0 : 0.01 : 4*pi; %// Choose a step size of 0.01
yout = subs(xsquare, t, tVector);
end
【问题讨论】:
-
查看我链接到的副本。这已经得到了回答。具体看我的回答:stackoverflow.com/a/24004603/3250829
-
谢谢,我试图将您发布的代码写到我自己的函数中。我需要它作为行向量返回。不幸的是,我运气不佳。
-
给出的是关于
t的函数。如果你想要一个矢量,你需要阅读帖子的结尾。您会看到该帖子定义了[-3,3]之间的时间向量,然后使用subs并且关于平方生成函数,它生成实际的时间/幅度值。在您的情况下,它现在是[0, 4*pi]。只需将边界从[-3,3]更改为[0,4*pi],您就有了答案。实际上,你需要 1001 分,所以你应该有t = linspace(0, 4*pi, 1001);。此外,我所做的是对无穷大或Inf的总结。您所要做的就是将Inf更改为n。 -
好的,我知道它是关于 t 的函数。那么来自用户的输入会是 t 吗?我正在尝试设置我的代码的第一行,现在它是:function [yout] = square_wave(t)。但是,当我尝试输入一个值时,出现以下错误: Square_wave (line 2) syms x; 中的错误;
-
我重新打开了这个问题并提供了答案。希望这会有所帮助。