親愛的可愛社區,Matlab - 構造函數不會初始化成員值
我已經看過谷歌和論壇,也發現了一些有趣的帖子。但最終我仍然沒有得到它的工作。所以,我會在這裏發佈這個問題。我知道在Matlab中已經實現了get/Set方法,但我使用的是對象,因此我不明白在哪裏實現它們。
總體結構:
+Measurement\MeasurerIF
+Measurement\MeasurerComponent
在我的界面我宣佈我的功能我想實現這個接口還抽象。它看起來像這樣:
classdef MeasuererIF < handle
methods (Abstract=true)
getStatus(cObj) ;
setStatus(cObj,iStatus) ;
getInfo(cObj) ;
setInfo(cObj,sInfo) ;
end
末
然後,我創建了其他類MeasurerComponent中,我實現的方法,也是構造:
classdef MeasurerComponent < PerformanceMeasurement.MeasuererIF
%% MeasurerComponent: Evaluates which model is used and contains them as childs.
% Detailed explanation goes here
properties (Access=protected)
miStatus;
msInfo;
mcData;
end
methods
%constructor
function cObj = PerformanceMeasurement.MeasurerComponent ;
cObj.miStatus = -1 ;
cObj.msInfo = 'Import' ;
cObj.mcData = [] ;
end
%Status
function setStatus(cObj,iStatus)
cObj.miStatus = iStatus;
end
function iStatus = getStatus(cObj)
iStatus = cObj.miStatus;
end
%Info
function setInfo(cObj,sInfo)
cObj.msInfo = sInfo;
end
function sInfo = getInfo(cObj)
sInfo = cObj.msInfo ;
end
end
末
早些時候,我只是使用了get
方法並且最近添加了set
方法,現在它不再工作了。問題是當我創建一個對象時
obj = Measurement.MeasurerComponent
程序不會再初始化這些值。
For a = obj.getInfo;
我只接收[]
是否有人有一個想法,爲什麼它不會再初始化?在收到提示後,由於句柄類,我將初始化過程更改爲構造函數。
我真的很感激,很高興每個提示和提示! Cheers
非常感謝。不知道這個前綴是沒有必要的。這可以幫助我解決很多問題,並且您提供的鏈接非常有幫助。目前無法測試,但白天我會給你更準確的反饋。但肯定會這樣。所以,非常感謝你爲我的問題花費在星期天的時間!你很棒! 與拼寫錯誤的問題是,我寫入的計算機不是我的matlab安裝的那個,所以我從內存中寫下來。不幸的是我寫了一個錯誤。在文件中沒有錯別字。 – luftfahrt
你好湯姆!我只是能夠實施你的建議,一切工作都很好!我很樂意讚揚你,但是我的聲譽太小,所以在文本形式:謝謝你! – luftfahrt
沒問題!很高興能爲您提供幫助,祝您的Matlab編程順利! – Tom