0

我有一个数字数组,我想整合数组 seperatley 中的每一列,最后在整合后取回一个数字数组。

我尝试了“trapz”函数,但我得到了一个值,我该怎么做上面我想要的?

这是我的代码:

t=-1:0.001:1;
x1=100*sinc(100*t);
x2= 100*(sinc(100*t)).^2;
W= -2000*pi:2*pi:2000*pi;
T=-1:0.001:1;
u=x1.*exp(-1i.*W.*t);
v=x2.*exp(-1i.*W.*t);
X11= trapz(t,u);
X22= trapz(t,v);

提前致谢。

4

1 回答 1

1

如果我正确地跟随你,你需要uv成为矩阵。为此,您必须解决代码中的两个问题:

  1. ω⋅t乘积应该是矩阵而不是向量。为此,您需要使用矩阵乘法W.' * t(注意添加的转置!)而不是逐元素乘法 ( .*)。这会产生转换所需的所有必要组合ω⋅t

  2. 以类似的方式,您需要xexp(-iωt)列相乘。使用bsxfun而不是逐元素乘法,如下所示:

    u = bsxfun(@times, x1(:), exp(-i * W.' * t));
    

    这同样适用于v

由于您使用相同exp(-i * W.' * t)的 foru和 for v,我建议计算一次并将其存储在一个变量中:

E = exp(-i * W' * t);
u = bsxfun(@times, x1(:), E);
v = bsxfun(@times, x2(:), E);

进行此修复后,trapz现在应该会产生所需的结果, X11X12应该是分别应用于x1和的傅里叶变换x2

于 2013-01-07T09:02:10.080 回答