我有三个向量A,B和C.对于这些向量中的每个值,我想求解方程C ^ x = A ^ x + B ^ x。不幸的是,这是一个我发现只能迭代求解的等式,所以我试图使用MATLAB的“求解”函数为每个案例找到一个解决方案。我的代码如下:
exponents = zeros(100,1);
syms x
A = rand(100,1);
B = rand(100,1);
C = rand(100,1);
for i = 1:100
exponents(i) = eval(solve(C(i)^x == A(i)^x + B(i)^x));
end
然而,有时候,解决方案无法获得,这会导致错误消息“警告:无法找到明确的解决方案”。我对此感到满意,但如果我遇到一个无法解决的等式,我想简单地让“exponents(i)”保持不变,继续进行下一次迭代,而不是让我的代码突然停止。有什么建议吗?
答案 0 :(得分:1)
如果在try / catch语句中放入导致偶然错误的语句,则错误不会导致执行停止。例如,您可以尝试:
for i = 1:100
try
exponents(i) = eval(solve(C(i)^x == A(i)^x + B(i)^x));
catch
exponents(i) = NaN;
end;
end
答案 1 :(得分:0)