陷阱整合

时间:2013-01-06 18:13:44

标签: matlab

我有一个数组数组,我想整合数组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);

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果我正确关注您,您需要uv作为矩阵。为此,您必须在代码中解决两个问题:

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

  2. 以类似的方式,您需要将x乘以exp(-iωt)列。使用bsxfun代替元素乘法,如下所示:

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

    同样适用于v

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

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

    完成此修复后,trapz现在应生成所需的结果, X11X12应该是{{1}上应用的傅里叶变换分别和x1