功能手柄未进行转换 - MATLAB
我得到这些错误:功能手柄未进行转换 - MATLAB
Conversion to function_handle from double is not possible.
已经搜索一下,并试图改变我的代码,但没有sucess。你能帮忙吗?由于
A=[99.23;100.05;91;107.71;104.1];
B=[3441 3441 301720.5;68750 1068750 0;170040 13085020 0;229350 229350 5729350;34194000 0 0];
N=[300000;1000000;13000000;5500000;32800000];
E=[-0.00302;-0.00261;-0.00208];
[c3,r3]=size(A);
[c4,r4]=size(B);
x=sym ('x',[1 c3]);
x=transpose(x);
for i=1:c3
Valor(i,1)=0;
for j=1:r4
Valor(i,1)[email protected](x){(Valor(i,1)/((1+E(j,1)+x(j,1))^j))+(B(i,j)/((1+E(j,1)+x(j,1))^j))};
end
end
我要的是找出X因为我已经有一个载体Valorantigo,我将使用应用解决载体。
Valorantigo(1:c3,1)=A(1:c3,1).* N(1:c3,1) ./100;
eqn=Valor(1:c3,1)==Valorantigo(1:c3,1);
[solx, param, cond] = solve(eqn, x, 'ReturnConditions', true);
基本上X将是
- Valorantigo(1,1)= 3441 /(1-0.00302 + X1)+ 3441 /(1-0.00261 + X1)^ 2 + 301720.5的溶液/(1-0.00208+x1)^3
- Valorantigo(2,1)= 68750 /(1-0.00302 + X2)+ 1068750 /(1-0.00261 + X2)^ 2 + 0 /(1-0.00208 + X2 )^ 3
- Valorantigo(3,1)= 170040 /(1-0.00302 + X3)+ 13085020 /(1-0.00261 + X3)^ 2 + 0 /(1-0.00208 + X3)^ 3
- 的其他线路相同...
就相关部分:
Valor(1,1)=symfun(0,x);
for i=1:c3
Valor(i,1)=symfun(0,x);
for j=1:r4
Valor(i,1)=symfun(Valor(i,1)/(1+E(j,1)+x(j,1))^j+(B(i,j)/((1+E(j,1)+x(j,1))^j)),x);
end
end
勇气有待predefinded为象征性的,与Valor(i,1)=0;
你去到一个双。
哦差点忘了,你的解决需要看起来像这样:
[solx1,solx2,solx3,solx4, solx5, param, cond] = solve(eqn, x, 'ReturnConditions', true);
但方式MATLAB未计算矢量_Valor_。心不是那可能有这样的结果:'勇猛= 3441 /(1-0.00302 + X1)+ 3441 /(1-0.00261 + X2)^ 2 + 301720.5 /(1-0.00208 + X3)^ 3'?谢谢 –
已经deitaled我想要的。你能帮忙吗? –
@ArleteFerreira做SOE的变化,现在对我的作品,你额外的代码。唉,我不知道解决COMAND应该如何在这里工作...... –
你有什么triying一起acomplish'= @(X){....}'?只是填满阵列'Valor'?然后就删除,并留下内侧 –
@AnderBiguri是的,我想填满基勇气。我把“{...}”放在了一边,因为我认为这是解决我的错误的方法之一。即使我抹去我有一些错误。 –
@AnderBiguri已经详细说明了。你能帮忙吗?我这个工作,因为周五和无法找到一个办法来解决我的代码 –