【发布时间】:2015-12-12 03:08:39
【问题描述】:
我有兴趣将一些矩阵元素编写为可以根据我的方便取值的函数,然后可以在此之上应用所需的矩阵运算。更准确地说,我试图在 x 上积分,矩阵的迹线具有矩阵元素作为 x 的函数(这些在分析上是未知的,因为它们来自依赖于 x 的矩阵的乘积)。
当我尝试将矩阵元素编写为函数时,我显然得到了错误-从 function_handle 转换为 double 是不可能的。有没有一种简单的方法可以将矩阵元素写成函数?
谢谢。请问我的问题是否不清楚。
例如,它是这样的:-
N_k = 10;
M_sigma = cell(N_k,1);
M_rho = cell(N_k,1);
for ii = 1:N_k
M_sigma {ii}(1,2) = @(sigma) sigma; %this kind of thing is not allowed in matlab
M_sigma {ii}(2,1) = @(sigma) -conj(sigma);
M_sigma {ii}(1,1) = 0;
M_sigma {ii}(2,2) = 0;
end
for ii = 1:N_k
M_rho {ii}(1,2) = @(rho) rho;
M_rho {ii}(2,1) = @(rho) -conj(rho);
M_rho {ii}(1,1) = 0;
M_rho {ii}(2,2) = 0;
end
M_tau = cell(N_k,1);
for ii = 1:N_k
M_tau {ii} = exp(M_sigma{ii})*exp(M_rho{ii});
end
% the following statement is wrong but I want to do something like
%:-write M_tau as a function of sigma and sum(integrate) the trace of M_tau for all values of sigma
integral(@(sigma) M_tau{1}(sigma), {0,1})
【问题讨论】:
-
写下你现在拥有的代码,否则很难想象你到底想做什么?
-
你能给我们看一些代码吗?很难想象你在问什么。
-
您只是重复相同的函数矩阵,但即使生成正确的函数,它也需要 2 个输入(
sigma和rho),因此无法为 sigma @987654324 定义积分@。或者你打算修复rho?