2017-07-17 10 views
1

を、私はこれらのエラーを取得しています:関数ハンドルが変換されていません - MATLAB

Conversion to function_handle from double is not possible.

はすでにそれについて検索し、自分のコードが、成功事例のなしを変更しようとしました。あなたは助けてくれますか?おかげ

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
  • 同じように他の行に...
+0

をあなたとacomplishするtriyingされているものを、 '= @(x)は{....}':


ああはほとんどあなたのように見えるようにニーズを解決するため、忘れてしまいましたか?配列 'Valor'を埋めるだけですか?それを取り除いて内部を残してください –

+0

@AnderBiguriはいはい、私は行列Valorを記入したいと思います。私は '{...} 'を置いた。なぜなら、私はそれを私のエラーの一つの解決策として見たからだ。私がそれを消去しても私は何らかの誤りがあります。 –

+0

@AnderBiguriは既にそれを詳述しています。あなたは助けてくれますか?私はfridayと私のコード –

答えて

0

だけで、関連するパート:

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 

勇気は、あなたが二重にそれを作っValor(i,1)=0;で、象徴としてpredefindedする必要があります。

[solx1,solx2,solx3,solx4, solx5, param, cond] = solve(eqn, x, 'ReturnConditions', true); 
+0

を修正する方法を見つけることができませんでしたので、これを使用していますが、その方法は、MATLABはベクトル_Valor_を計算していません。 'Valor = 3441 /(1-0.00302 + x1)+3441 /(1-0.00261 + x2)^ 2 + 301720.5 /(1-0.00208 + x3)^ 3'のような結果を得ることはできませんか?ありがとうございました –

+0

私は欲しいものを既にdeitaled。あなたは助けてもらえますか? –

+0

@ArleteFerreiraがソーを変更しました。あなたの追加コードを使って今すぐ私の仕事をしてください。悲しいかな、私は解決法がここで働くことになっているのか分かりません... –

関連する問題