我有一个数组数组,我想整合数组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);
提前致谢。
答案 0 :(得分:1)
如果我正确关注您,您需要u
和v
作为矩阵。为此,您必须在代码中解决两个问题:
ω⋅t
产品应该是矩阵而不是矢量。为此,您需要使用矩阵乘法W.' * t
(注意添加的转置!)而不是元素乘法(.*
)。这将生成转换所需的ω⋅t
的所有必要组合。
以类似的方式,您需要将x
乘以exp(-iωt)
列。使用bsxfun
代替元素乘法,如下所示:
u = bsxfun(@times, x1(:), exp(-i * W.' * t));
同样适用于v
。
由于您对exp(-i * W.' * t)
和u
使用相同的v
,我建议计算一次并将其存储在变量中:
E = exp(-i * W' * t);
u = bsxfun(@times, x1(:), E);
v = bsxfun(@times, x2(:), E);
完成此修复后,trapz
现在应生成所需的结果,即 X11
和X12
应该是{{1}上应用的傅里叶变换分别和x1
。