Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Octave 以八度为单位按列求和单行向量_Octave - Fatal编程技术网

Octave 以八度为单位按列求和单行向量

Octave 以八度为单位按列求和单行向量,octave,Octave,我已经编写了一个简短的八度脚本,它为k=1..n项绘制了函数sumsin2k-1/2k-1。我试图模拟连续项如何使输出收敛到方波 % Program to model square-wave using sum of sines terms=3 theta=linspace(0, 6*pi, 1000); k=[1:terms]'; n=2*k-1; q=sin(n*theta)./n; y=sum(q); plot(theta, y); 它工作正常,即sum函数返回一个向量,该向量包含

我已经编写了一个简短的八度脚本,它为k=1..n项绘制了函数sumsin2k-1/2k-1。我试图模拟连续项如何使输出收敛到方波

% Program to model square-wave using sum of sines

terms=3

theta=linspace(0, 6*pi, 1000);
k=[1:terms]';
n=2*k-1;

q=sin(n*theta)./n;
y=sum(q);
plot(theta, y);
它工作正常,即sum函数返回一个向量,该向量包含terms>1的每列的和。但是当terms==1时,也就是说,它应该只画一个正弦波,sum函数计算行的和,并只返回一个标量

即使只有一行,如何得到求和函数来求和每列,或者如何对行向量进行整形或切片,或者无论行向量是什么,从而使其有效地成为一维的n维向量,而不是一维的1xn维矩阵

看看这是否有效。

sum与倍频程中的许多其他函数一样,默认情况下将作用于第一个非单态维度。因此,您所需要做的就是具体说明维度。从sum帮助文本:

如果省略DIM,则默认为第一个非单一维度

因此,您所需要做的就是具体说明维度,即使用sum q,1:

谢谢你。我相信它会起作用,但看起来有点混乱。程序本身既不在这里也不在那里。我想知道的是,我怎样才能使一个向量表现出来,并被当作一个矩阵来对待。
q=sin(n*theta)./n;
if (terms == 1)
    y = q;
else
    y=sum(q);
end
plot(theta, y);
terms = 1

theta = linspace (0, 6*pi, 1000);
k = [1:terms]';
n = 2*k-1;

q = sin (n*theta) ./ n;
y = sum (q, 1);
plot (theta, y);