Error when trying to solve a "Matricial" equation : problem of indices
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Hello,
I try to solve a system of equations (actually, this is like a "Matricial equations since I would like that each elements of 2 matrices to be equal)
The 2 matrices to be equal are named :
FISH_GCsp_XC_SYM
and
FISH_GCsp_XC_SYM2
I have just put a crucial constraint in my system, i.e :
% 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)
Here is the entire scrit :
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,:) = FISH_XC_SYM(8,:)
FISH_GCsp_SYM(:,8) = FISH_XC_SYM(:,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;
% Matricial equality
eqn = FISH_GCsp_XC_SYM == FISH_GCsp_XC_SYM2;
% Solving : matrix1 equal to matrix2
sol = solve([eqn(:)], FISH_GCsp_XC_SYM(:,8))
The unknown to determine symbolicly is the last colum of FISH_GCsp_XC_SYM , i.e FISH_GCsp_XC_SYM(:,8) (so 8 unknown at total).
Unfortunately, I get the following error at execution :
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(:)], FISH_GCsp_XC_SYM(:,8))
I don't understand why it fails.
If someone could tell me what's wrong, this would be fine.
Best regards
0 Kommentare
Antworten (2)
Walter Roberson
am 14 Feb. 2021
replace the loop with just
eqn = FISH_GCsp_XC_SYM == FISH_GCsp_XC_SYM2;
0 Kommentare
Siehe auch
Kategorien
Mehr zu Calculus finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!