Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.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
Matlab trapz积分_Matlab - Fatal编程技术网

Matlab trapz积分

Matlab trapz积分,matlab,Matlab,我有一个数字数组,我想对数组中的每一列分别进行积分,最后在积分后得到一个数字数组 我尝试了“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= t

我有一个数字数组,我想对数组中的每一列分别进行积分,最后在积分后得到一个数字数组

我尝试了“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);

提前谢谢。

如果我没听错,你需要
u
v
作为矩阵。为此,您必须解决代码中的两个问题:

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

  • 以类似的方式,您需要将
    x
    乘以
    exp(-iωt)
    列。使用
    bsxfun
    而不是按元素乘法,如下所示:

    u = bsxfun(@times, x1(:), exp(-i * W.' * t));
    
    这同样适用于
    v

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

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

    在此修复之后,
    trapz
    现在应该产生所需的结果,即
    X11
    X12
    应该分别是应用于
    x1
    x2
    的傅里叶变换

    是我弄错了,还是你给了trapz一个1D数组,它是网格上函数的值。因此,它如何返回一个数组呢?目前,您确实在传递一个1D数组,因此您看到的输出实际上是该列上的整数。你想要构建的2D数组是什么?W不包含几列,我想最终通过梯形积分绘制x1和x2的傅里叶变换。出于好奇,你为什么同时定义
    t
    t