2012-01-11 24 views
0

當我嘗試實例化一個類的數組時,我遇到了一個matlab構造函數的問題。陣列中的Matlab類

我收到以下錯誤:

??? 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 iniciarNovaVolta(Circuito, Nmaxpiloto) 
      Circuito.Voltas(Circuito.Nvoltas) = Volta(Nmaxpiloto); 
      Circuito.Nvoltas = Circuito.Nvoltas + 1; 
end 

在沃爾特類構造器是:

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

我有這個問題不止一次,但類型看起來不錯。你能告訴我什麼我看不到?

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

你能顯示更多的代碼嗎?看到對該函數的調用以及您正在嘗試調用的函數會很高興。 – 2012-01-11 23:11:09

回答

1

檢查您的類型。我猜Volta(Nmaxpiloto)是double類型,Circuito.Voltas(Circuito.Nvoltas)是volta類型。這是無法完成的。聽起來你正在將很多OOP與MATLAB混合在一起,這並不是說你不能。您可能需要查看此鏈接:http://www.mathworks.com/help/techdoc/matlab_prog/f2-47534.html#bqt_gwr以查看有效的MATLAB類。

+0

再次嗨! Volta類的構造器是: {function Volta = volta(Nmaxpiloto) if(nargin> 0) %Volta.Melhortempovolta = Melhortempovolta; Volta.Nmaxpiloto = Nmaxpiloto; 結束 結束} 我有過這個問題多次,但類型看起來不錯。你能告訴我什麼我看不到? function Volta = volta(Nmaxpiloto) if(nargin> 0) – user682711 2012-01-12 02:05:50

0

在沃爾特類構造器是:

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

我有這個問題不止一次,但類型看起來正確。你能告訴我什麼我看不到?

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