Matlab中的函数句柄数组

时间:2018-11-12 09:46:32

标签: matlab integration function-handle

从向量Psi_0开始,我将传播的向量定义为Psi (t) = exp{-iHt} Psi_0,其中H是邻接矩阵(但我认为这与我的问题无关)。我需要计算

1/tau * int^tau_0 |<j|psi(t)>|^2 dt

我尝试通过以下方式执行此操作,但这不起作用

psi_0 = diag(eye(N))/N;
Psi_t = zeros(N);

Psi_sqared = @(t) (expm(1j*A*t)*psi_0).*(expm(-1j*A*t)*psi_0);

c_tqw = integral(Psi_sqared, 0, 10000)/10000;

错误如下

Error using  * 
Incorrect dimensions for matrix multiplication. Check that the number of columns in the first matrix matches the number of rows in the
second matrix. To perform elementwise multiplication, use '.*'.

Error in centrality_measure>@(t)(expm(1j*A*t)*psi_0).*(expm(-1j*A*t)*psi_0)

Error in integralCalc/iterateScalarValued (line 314)
                fx = FUN(t);

Error in integralCalc/vadapt (line 132)
            [q,errbnd] = iterateScalarValued(u,tinterval,pathlen);

Error in integralCalc (line 75)
        [q,errbnd] = vadapt(@AtoBInvTransform,interval);

Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);

Error in centrality_measure (line 75)
c_tqw = integral(Psi_sqared, 0, 10000)/10000;

是否有避免此错误的建议?

0 个答案:

没有答案