MATLABクラス 銀行口座クラスの例
クラスの開発 - 一般的なワークフロー - MATLAB & Simulink - MathWorks 日本
methodsfunction BA = BankAccount(AccountNumber, InitialBalance)BA.AccountNumber=AccountNumberBA.AccountBalance=InitialBalanceBA.AccountListerner=AccountManager.addAccount(BA);end
ファイル名と同じ名前のメソッドはコンストラクタ。
function self = function_name(引数 , 引数,,,)
self.hoge = 引数
self.hoge = 引数
というパターンになるはず。
properties(SetAccess = private)AccountNumberAccountBalanceend
マトラボでいうプロパティはパイソンでいうインスタンス変数のこと。
アクセスできるできないのパイソンでいう__をSetAccessで設定する。
パイソンと違うのは宣言が必要なところでpropertiesでは宣言だけをする。
コンストラクタでのちに代入していく。
methods (Static)
パイソンと同じでインスタンスの生成が必要ないものをスタティックメソッドという。
BA = BankAccount(1234567,500)BA = BankAccount with properties: AccountNumber: 1234567 AccountBalance: 500 AccountListener: [1x1 event.listener]
パイソンと同じくインスタンスの生成。
getStatement(BA)------------------------- Account: 1234567 CurrentBalance: 500.00 Account Status: open -------------------------
これはコマンドラインからメソッドを呼んでいる。スクリプトの中で呼ぶときはどうすればいい?function getStatement(BA) disp('-------------------------') disp(['Account: ',num2str(BA.AccountNumber)]) ab = sprintf('%0.2f',BA.AccountBalance); disp(['CurrentBalance: ',ab]) disp(['Account Status: ',BA.AccountStatus]) disp('-------------------------') end
BA.getStatement()ではないのか?
これは引数selfと思えばいい