MATLAB: Solving an unknown 1024×1024 variable

equationMATLABmatrixvariable

pic1 = double (Pic1);
pic2 = double(Pic2);
pic3 = double(Pic3);
pic4 = double(Pic4);
ILB = 1;
B = pic1./ILB;
ILC = 0.2;
VC(1:1024,1:1024)= 0.581695;
VT = 0.025;
C = (pic2 - B*ILC)./(exp(VC./VT));
IL = 1;
V1 = VT*log((pic3 - B*IL)./(C));
V2 = VT*log((pic4 - B*IL)./(C));
jp=0.038;
Vp1(1:1024,1:1024)=0.616185;
Vp2(1:1024,1:1024)=0.575044;
syms A
eqn = (((Vp1-V1))./(A.*exp(V1/VT)-jp)).*(A*exp(V2/VT)-jp) == Vp2-V2;
Asol = solve(eqn, A);
A= subs(Asol, {A}, {A});
Unable to solve for variable A?

Best Answer

In MATLAB, a resolved symbolic variable is always a scalar, so you are asking solve() to find a single value that simultaneously satisfies over a million different equations.
A = sym('A', size(Vp1));
eqn = (((Vp1-V1))./(A.*exp(V1/VT)-jp)).*(A*exp(V2/VT)-jp) == Vp2-V2;
Asol = solve(eqn, A);