2012-01-11 17 views
0

クラスの配列をインスタンス化しようとすると、matlabのコンストラクタに問題があります。配列のMatlabクラス

私は次のエラーを取得する:ボルタクラスのコンストラクタがある

function iniciarNovaVolta(Circuito, Nmaxpiloto) 
      Circuito.Voltas(Circuito.Nvoltas) = Volta(Nmaxpiloto); 
      Circuito.Nvoltas = Circuito.Nvoltas + 1; 
end 

??? The following error occurred converting from volta to double: 
Error using ==> double 
Conversion to double from volta is not possible. 

Error in ==> circuito>circuito.iniciarNovaVolta at 37 
      Circuito.Voltas(Circuito.Nvoltas) = Volta(Nmaxpiloto); 

Error in ==> testes at 99 
c1.iniciarNovaVolta(10); 

そして、私のコードがある

function Volta=volta(Nmaxpiloto)    
    if(nargin>0)  
     %Volta.Melhortempovolta=Melhortempovolta; 
       Volta.Nmaxpiloto=Nmaxpiloto;        
      end   
end 

私は複数回、この問題を持っていましたしかし、タイプは正しく見えます。私が見ることができないものを教えてください。

function Volta=volta(Nmaxpiloto) 
if(nargin>0) 
+1

もっとコードを表示できますか?関数呼び出しと呼び出ししようとしている関数を確認するといいでしょう。 –

答えて

1

タイプを確認してください。私はVolta(Nmaxpiloto)がdouble型で、Circuito.Voltas(Circuito.Nvoltas)はvolta型であると推測しています。これはできません。多くのOOPをMATLABと混合しているように思えますが、これはできないと言っているわけではありません。有効なMATLABクラスを確認するには、このリンクを参照することをお勧めします。http://www.mathworks.com/help/techdoc/matlab_prog/f2-47534.html#bqt_gwr

+0

こんにちは! Voltaクラスのコンストラクタは次のとおりです。 {function Volta = volta(Nmaxpiloto) if(nargin> 0) %Volta.Melhortempovolta = Melhortempovolta; Volta.Nmaxpiloto = Nmaxpiloto; end end} この問題は2回以上発生しましたが、タイプは正しく見えます。私が見ることができないものを教えてください。 関数Volta = volta(Nmaxpiloto) if(nargin> 0) – user682711

0

ボルタクラスのコンストラクタは次のとおりです。

function Volta=volta(Nmaxpiloto)    
    if(nargin>0)  
     %Volta.Melhortempovolta=Melhortempovolta; 
       Volta.Nmaxpiloto=Nmaxpiloto;        
      end   
end 

私は複数回、この問題を持っていましたが、種類が右に見えます。私が見ることができないものを教えてください。

function Volta=volta(Nmaxpiloto) 
if(nargin>0)