2010-05-24 52 views
1

以下是我的MATLAB程序的基本框架。每個框都是一個類定義。未定義的變量在Matlab中

向下滾動以查看錯誤。 alt text 注: 1.每個類都有一個自定義的構造


的錯誤

Undefined function or variable 'Troom'. 

Error in ==> wall>wall.wall at 31 
     function o = wall(Tr) 

Error in ==> mainfile at 5 
     w1 = wall(); 

這是當我創建另一個文件類壁的對象「mainfile 「


問題

  1. 這究竟是爲什麼?
  2. 我在爲OOP的Matlab的具體概念錯了嗎?
  3. 我該如何解決這個問題?

在此先感謝!


PS:代碼

function o = wall() 
     Tr = o.Troom*2; 
     o.N = round(1/o.dx) + 1; 
     o.T = Tr * ones(o.N,1); 
     o.Tinf = Tr; 
     o.update_properties(); 
    end 

代碼2

classdef wall 
properties 
    dx = 0.01; 
    dt = 0.4; 
    L = 0.16; 
    N; 
    tlimit = 1505.2; 
    sbc = 5.670400e-8 % The Stefan-Boltzmann Constant 

    a; 
    hi; % Surface Conductivity of Inner Surface 
    bi; 
    ho; % Surface Conductivity of Outer Surface 
    bo; 
    lamb; 

    Troom = 298; % Room Temperature (K) 
    Tinf; 
    T; 

    room = compartment(); 
    conc = concrete(); 
    fire = fireProperties(Troom); 

end 
+0

實際的代碼會很有幫助,不可能說出你給我們的是怎麼回事。 – Donnie 2010-05-24 13:21:15

+0

我已經把構造函數代碼,發生問題的地方。 :) 希望它有幫助。其他類有很長的代碼,這可能在這裏不相關。 – OrangeRind 2010-05-24 13:28:12

+0

我爲此感到困惑,爲什麼會發生這種情況。 因爲。對其他變量沒有顯示。 – OrangeRind 2010-05-24 13:30:02

回答

2
room = compartment(); 
conc = concrete(); 
fire = fireProperties(Troom); 

是的,你的問題就在那裏。 Troom不能用於properties塊的上下文中。要麼將常量放入Troom中,要麼將它們移到它們所屬的構造函數中。

+0

完成!大!非常感謝! 還有一個問題:關於Mathworks的OOP文檔看起來很囉嗦和混亂。 matlab OOP比mathworks有更好的治療方法嗎? – OrangeRind 2010-05-24 13:53:16

+1

如果您打算爲OOP進行科學計算,您至少應*考慮*使用Python + numpy + scipy。 Python比Matlab,IMO更適合OOP。 – 2010-05-24 14:07:01

+0

kk。將研究這一點。日Thnx! :) – OrangeRind 2010-05-24 14:17:24