Matlab Symbolic - 如何解决“矩阵方程”:索引问题

问题描述

我尝试求解一个方程组(实际上,这就像一个“矩阵方程,因为我希望 2 个矩阵的每个元素都相等)

两个相等的矩阵被命名为:

FISH_GCsp_XC_SYMFISH_GCsp_XC_SYM2

我刚刚在我的系统中设置了一个关键约束,即:

% Set 1 bias spectro equal for sp and xc
FISH_GCsp_SYM(8,:) = FISH_XC_SYM(8,:)
FISH_GCsp_SYM(:,8) = FISH_XC_SYM(:,8)

这是整个剧本:

FISH_GCsp_SYM = sym('sp_',[8 8])
FISH_XC_SYM = sym('xc_',[8 8])

FISH_GCsp_SYM2 = sym('sp2_',[9 9])
FISH_XC_SYM2 = sym('xc2_',[9 9])

% Set 1 bias spectro equal for sp and xc
FISH_GCsp_SYM(8,8)

% Sum for Fisher matrices;
FISH_GCsp_XC_SYM = FISH_GCsp_SYM + FISH_XC_SYM;

% Marginalisation on 9th dimension
COV_GCsp_SYM2 = inv(FISH_GCsp_SYM2)
COV_XC_SYM2 = inv(FISH_XC_SYM2)
COV_GCsp_SYM2(9,:) = [];
COV_GCsp_SYM2(:,9) = [];
COV_XC_SYM2(9,:) = [];
COV_XC_SYM2(:,9) = [];
FISH_GCsp_SYM2 = inv(COV_GCsp_SYM2);
FISH_XC_SYM2 = inv(COV_XC_SYM2);    

% Sum for Fisher matrices;
FISH_GCsp_XC_SYM2 = FISH_GCsp_SYM2 + FISH_XC_SYM2;

% Equation matricial to solve
eqn = FISH_GCsp_XC_SYM == FISH_GCsp_XC_SYM2;

% Solving : matrix1 equal to matrix2
sol = solve([eqn(:)],FISH_GCsp_XC_SYM(:,8))

符号确定的未知数是 FISH_GCsp_XC_SYM 的最后一列,即 FISH_GCsp_XC_SYM(:,8) (so,8 unkNown)

不幸的是,我在执行时遇到以下错误

Error using sym.getEqnsVars>checkVariables (line 92)
Second argument must be a vector of symbolic variables.

Error in sym.getEqnsVars (line 54)
    checkVariables(vars);

Error in solve>getEqns (line 429)
[eqns,vars] = sym.getEqnsVars(argv{:});

Error in solve (line 226)
[eqns,vars,options] = getEqns(varargin{:});

Error in building_observable_to_find_SIMPLE_EXAMPLE_ONLY_1_BIAS_COMMON (line 190)
sol = solve([eqn(:)],:))

为什么会失败?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)