Takuya Miyashita
This site
Web
Start:
*class定義などなど メモ [#a2a71cf6]
#contents
**クラス定義 基本形 [#h00e20a6]
通常のファイル同様 .m ファイル形式でOK.
#codeprettify(lang-matlab){{
classdef ClassName
properties
foobar
hogehoge
end
properties (Constant)
g = 9.81
c = 299792458
end
%% methods
methods
%% constructor
function obj = ClassName(val)
obj.foobar = val
end
function varargout = disphoge(obj,arg2,arg3)
disp(obj.hogehoge)
disp(arg2+arg3)
end
end
%% static methods
methods (Static)
function out = something(arg1,arg2)
out = arg1 + arg2
end
end
end
}}
obj はこのクラスによって生成されたオブジェクト(インスタン...
**コンストラクタ [#a8ae69cd]
クラス名と同名の function を作成することはできない.~
ただしコンストラクタとして,以下のようにインスタンス生成...
#codeprettify(lang-matlab){{
function obj = ClassName(val)
obj.foobar = val
end
}}
**インスタンス生成 [#e07a2ba1]
直下にあるかパスが通っている状態で
#codeprettify(lang-matlab){{
A = ClassName; % インスタンス生成
A.foobar = hogehoge; % プロパティ値入力
}}
他の言語でよくあるような()は付けない.~
プロパティを入力する手間を省く場合は,上述のコンストラク...
#codeprettify(lang-matlab){{
A = ClassName(val)
}}
とする.
**メソッド呼び出し [#ufdc4762]
上記の disphoge(obj,arg2,arg3) を使うときは,
#codeprettify(lang-matlab){{
A.disphoge(arg2,arg3)
}}
または
#codeprettify(lang-matlab){{
disphoge(A,arg2,arg3)
}}
のようにする.個人的には前者を推奨する.
***varargin はどうなる? [#z5bc3b9e]
varargin は,通常の function と同じように使えるが,
#codeprettify(lang-matlab){{
A.myfunction(arg2,arg3)
}}
とすると, varargin{1} は A,varargin{2} は arg2 となる.
#codeprettify(lang-matlab){{
myfunction(A,arg2,arg3)
}}
と同じ扱いになる.
#codeprettify(lang-matlab){{
% クラス定義のファイル内で書く
methods
function myfunction(varargin)
% assign
obj = varargin{1}
arg2 = varargin{2}
arg3 = varargin{3}
% main ....
...
end
end
}}
#codeprettify(lang-matlab){{
% 実行
A = ClassName;
A.myfunction(arg2,arg3)
}}
**参考[#k299f97d]
MathWorks の公式ページ.
-[[クラス定義>https://jp.mathworks.com/help/matlab/object...
End:
*class定義などなど メモ [#a2a71cf6]
#contents
**クラス定義 基本形 [#h00e20a6]
通常のファイル同様 .m ファイル形式でOK.
#codeprettify(lang-matlab){{
classdef ClassName
properties
foobar
hogehoge
end
properties (Constant)
g = 9.81
c = 299792458
end
%% methods
methods
%% constructor
function obj = ClassName(val)
obj.foobar = val
end
function varargout = disphoge(obj,arg2,arg3)
disp(obj.hogehoge)
disp(arg2+arg3)
end
end
%% static methods
methods (Static)
function out = something(arg1,arg2)
out = arg1 + arg2
end
end
end
}}
obj はこのクラスによって生成されたオブジェクト(インスタン...
**コンストラクタ [#a8ae69cd]
クラス名と同名の function を作成することはできない.~
ただしコンストラクタとして,以下のようにインスタンス生成...
#codeprettify(lang-matlab){{
function obj = ClassName(val)
obj.foobar = val
end
}}
**インスタンス生成 [#e07a2ba1]
直下にあるかパスが通っている状態で
#codeprettify(lang-matlab){{
A = ClassName; % インスタンス生成
A.foobar = hogehoge; % プロパティ値入力
}}
他の言語でよくあるような()は付けない.~
プロパティを入力する手間を省く場合は,上述のコンストラク...
#codeprettify(lang-matlab){{
A = ClassName(val)
}}
とする.
**メソッド呼び出し [#ufdc4762]
上記の disphoge(obj,arg2,arg3) を使うときは,
#codeprettify(lang-matlab){{
A.disphoge(arg2,arg3)
}}
または
#codeprettify(lang-matlab){{
disphoge(A,arg2,arg3)
}}
のようにする.個人的には前者を推奨する.
***varargin はどうなる? [#z5bc3b9e]
varargin は,通常の function と同じように使えるが,
#codeprettify(lang-matlab){{
A.myfunction(arg2,arg3)
}}
とすると, varargin{1} は A,varargin{2} は arg2 となる.
#codeprettify(lang-matlab){{
myfunction(A,arg2,arg3)
}}
と同じ扱いになる.
#codeprettify(lang-matlab){{
% クラス定義のファイル内で書く
methods
function myfunction(varargin)
% assign
obj = varargin{1}
arg2 = varargin{2}
arg3 = varargin{3}
% main ....
...
end
end
}}
#codeprettify(lang-matlab){{
% 実行
A = ClassName;
A.myfunction(arg2,arg3)
}}
**参考[#k299f97d]
MathWorks の公式ページ.
-[[クラス定義>https://jp.mathworks.com/help/matlab/object...
Page:
Edit with a page name which already exists