2009-10-20
■ [matlab]オブジェクト指向な書き方 at Matlab 2008a

Matlab 2008aから、クラス定義の仕方とかが変わってずいぶん使いやすくなったようなのでメモ.以前のは使いづらかった記憶があって使ってなかったのでどういう風にやってたのか分からない…。(ので、ネスト関数使ってむちゃくちゃな書き方をしてた.)
リファレンス
リファレンスはこちら.Matlab R2008aのもの。
各種詳細な情報と例題へのリンク
記述例
classdef transducer<handle %<handleとすることでハンドルクラスのサブクラスと成る。これにより生成されるオブジェクトはすべて元オブジェクトのハンドル(参照渡しとなる properties soundspeed = 1540; samplingfrequency = 100e6; centerfrequency = 3.5e6; lambda temp=0 end methods function obj = transducer(f0, fS) %% コンストラクタメソッド if nargin == 0 elseif nargin == 1 obj.centerfrequency = f0; else obj.centerfrequency = f0; obj.samplingfrequency = fS; end end function print_soundspeed(obj) %% method print disp([num2str(obj.tmp), ' : soundspeed = ', num2str(obj.soundspeed)]) obj.temp = obj.temp+1; end function print_lambda(obj) lambda = obj.soundspeed / obj.centerfrequency; disp(lambda) obj.lambda = lambda; end end end
1クラス1ファイル.class定義はclassdef ~ endブロックで。その中にインスタンス変数となる properties ~ endとメソッドをmethods ~ endそれぞれ定義する.
properties
インスタンス変数.properties~endブロックで定義する.ここで使用できるのは定数とmatlab式のみ。(変数は使えない!)
また、プロパティにたいして以下のようにして属性を指定できる
properties (Hidden) % 外部から見えない propertyA end properties (Access=public) % Access, SetAccess, GetAccess / Public, protected, private end % Access / Get and Set % GetAccess / Getのみ % SetAccess / Setのみ % Public アクセス制限なし % protected クラスまたは導出クラスからのアクセス % private クラスメンバからのみアクセス
など。
methods
クラス名と同じmethodを定義する事でコンストラクタになる
つづく!
■ めも:めりも引っ越し

ついでにめりもも。
いままで
- ちびめりも in fortissimo
- めりも in dolcevita
これから
- both of them are in dolcevita
lab系PCは音楽、us系は適当、labサーバ系はもっと適当
■ めも:クローラの配置かえた

これから
on brain
huaxin, xichui, xuan
backup db_file to nas (at midnight)
on lark
download db_file from nas and make daily_stat_report
いままで
on lark
huaxin, xichui, xuan
make daily_stat_report
(no backup)
■ [python] pythonからsftpを使いたい

シェルスクリプトとかかければそれでいいんだろなーとか思いつつ.pythonからsftpを使うにはsshを使えるモジュールparamikoを使う
paramikoの導入はubuntuなら
sudo apt-get install python-paramiko
macportなら
sudo port install py26-paramiko
でOK。
ファイルの転送は以下。
import os, paramiko # prepare server = sshserver username = sshuser password = sshpass localfile = file0 remotefile = file0 # ssh connection ssh = paramiko.SSHClient() ssh.load_host_keys(os.path.expanduser(os.path.join('~', '.ssh', 'known_hosts'))) ssh.connect(server, username=username, password=password) # file transfer via sftp sftp = ssh.open_sftp() sftp.chdir(targetdir) sftp.put(localfile, remotefile) sftp.close() ssh.close()
変数をsftp越しにファイルに保存するには以下.
sftp = ssh.open_sftp() remote_file = sftp.file(remotefile, “wb”) remote_file.set_pipelined(True) remote_file.write(data) sftp.close()
まぁこんなかんじ。
tivhhxzuudi2011/03/04 17:4490lJzr <a href="http://idqudmeebpew.com/">idqudmeebpew</a>, [url=http://ojtxowrgzmqp.com/]ojtxowrgzmqp[/url], [link=http://fvecrqqbxlmi.com/]fvecrqqbxlmi[/link], http://dkoisewmuxcl.com/
