2013-03-16 83 views
3

我在MATLAB中有以下目錄結構的項目:你如何使用matlab中的對象作爲成員變量來創建類?

+namespace\ 
    @class1\ 
     class1.m 
    @class2\ 
     class2.m 
mainfile.m 

在class1.m我有類似如下的

classdef class1 

    %readonly variables 
    properties(GetAccess = 'public',SetAccess = 'private') 
     forename; 
     lastname; 
     middlename; 

    end 

    properties(Constant = true) 

     %in centipascals 
     p1 = class2(param1,param2); %this is the part I need to work 

    end 

    methods(Access = public) 

     function this = class1(fname,lname,mname) 

      this.forename = fname; 
      this.lastname = lname; 
      this.middlename = mname; 

     end 
    end 
end 

我似乎無法得到這個一流的工作。 Class1不能識別class2的構造函數(可能是因爲某些東西沒有被正確導入)。如何導入class2或爲了將其他類實例作爲成員變量而需要做什麼?

+0

您需要將這些目錄添加到路徑。文件>設置路徑>添加文件夾或使用添加路徑功能。 – Justin 2013-03-16 19:07:04

回答

0

在Matlab中,您需要完全限定對名稱空間中的類的引用,即使是來自同一名稱空間內的其他類也是如此。喜歡這個。

classdef class1 
    properties (Constant = true) 
     %in centipascals 
     p1 = namespace.class2(param1,param2); 
    end 
end 

您可以import其他類來自同一個命名空間,但是import s的每個功能級別只工作,不以性能塊在所有的工作據我所知,這樣就不會在這個特定的工作的情況下,可能會比其他地方的價值更麻煩。

+0

謝謝!當我將它導入它的功能塊時,它就工作了 – thed0ctor 2013-03-18 01:28:48

相關問題