夢に向かって、好奇心を持ち、疑問を持ち続ける。それが努力。

趣味でロボット職人を目指す自称AI研究者のメモです。

Matlabを使いこなす(入出力編)

Matlabの入出力にはいろんなファイル形式に対応してて便利です.
今日はそのうちの少しを紹介します.

・入力関数
load
dlmread
textread
wk1read
imread
wavread
aviread

・出力関数
save
fprintf
dlmwrite
wk1write
imwrite
wavwrite
avifile

以下によく使う出力・入力のセットをサンプルコードで書いたので,参考にどうぞ.

・saveとloadのサンプル

 a=3
 b=[2,3]
 % 出力(パラメータの保存)
 filename='matsample.mat'
 save(filename)
 % 入力(パラメータの取得 )
 c=load(filename)
 c.a  
 c.b

・dlmwriteとdlmreadのサンプル

  b=[1,2,3;2,3,1;3;3;5]
  % 出力(保存)
  filename='csvsample.dat'
  dlmwrite(filename,b,',')
  csvwrite(filename,b)
  % 入力(ロード)
  dlm=dlmread(filename, ',')
  csv=csvread(filename)

 
・fopenを使ったテキスト入出力

  % 出力
  sampletext='aabbcc\ndef'
  filename='sample.txt'
  fileid=fopen(filename,'w')
  fprintf(fileid,sampletext)
  fclose(fileid)
  % 入力
  fileid=fopen(filename)
  while fileid < 0
      line=fgetl(fileid)
	  disp(line)
  end
  fclose(fileid)

以上です.
Matlab入門講座はまた〜!

boost.pythonを使って見る

boost.pythonは,C++の関するやライブラリをpythonから簡単に使えるようにするためのパッケージ.

どれだけ便利かについては,以下のURLが参考になる.
Boost.Python の機能をざっと紹介してみる - muddy brown thang

以下はlinuxでのインストール手順について簡単にまとめたので参考程度に.

boost.pythonのサイトは,以下.
Boost C++ Libraries

まず,wgetコマンドにて,urlからパッケージをダウンロードします.
wget https://sourceforge.net/projects/boost/files/boost/1.62.0/boost_1_62_0.tar.bz2

次に,解凍.
tar --bzip2 -xf boost_1_62_0.tar.bz2

PATHに展開先ディレクトリを指定することで,
pythonファイル内でimport boost/python ができるはず.

以上です.また:)

anacondaを使ってpython2系3系を共存させる

python2系とpython3系って意外に違って困ることありますよね.

今日はanacondaを使って両方を切り替えて使う方法を紹介します.
# anacondaはすでにインストールされている前提で記載します.

anaconda3で,python3系が使われている場合
pythonと打った時に,pythonのバージョンが表示されるのでどちらが動いているか確認できます)

以下のコマンドでpython2系の環境が構築できます.

conda create -n py2 python=2.7

続いて,
source activate py2

とすれば,上記で構築したpython2.7の環境に入ることができます.

以上.anacondaを使っていると簡単ですね.


anacondaでない場合には,pyenvを使って切り替える方法があります,
以下,簡単にメモしておきます.



まずはpyenvを使えるようにします.
以下からインストールしてください.

git clone https://github.com/yyuu/pyenv ~/.pyenv

次にpyenvを使えるように設定します.

~/.bashrcの中に,

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

を追記してください.

source ~/.bashrcもしくは,bashの再起動で,変更を反映させたら,
pyenv version
と打ってエラーにならないことを確認します.


環境構築はここまで.

その後,python実行時に,python2 *.pyやpython3 *.pyとすることで,
バージョンを指定して実行することができます.

以上.

これでpythonの実行環境が快適になりました☆

LaTeX Beamerのインストール方法のメモと注意点

数式をたくさん使うパワポを作る人は,LaTeXで作ると便利ですよね.

そいうことで,Beamerのインストール手順とその注意点を記述します.

# ここでは,TeXShopが,以下のサイトの手順でダウンロードされていること前提です.
http://osksn2.hep.sci.osaka-u.ac.jp/~taku/osx/install_ptex.html

まず,Beamerのサイトから,beamer,pgf,xcolorをダウンロードしてきます.
https://sourceforge.net/projects/latex-beamer/files/?source=navbar

このときに,ダウンロード先は,できれば,texのshareの下とかにbeamerディレクトリを作って入れることと,
latex-beamer-x.x.x.tar.gzの展開は,beamerとして
pgf-x.x.x.tar.gzの展開は,pgfとして
xcolor-x.x.x.tar.gzの展開は,xcolorとして
保存してから,tar xzvfコマンドで展開するのが良い.

# 保存先を間違えたからといって,コピーして同じものを残しておくと,
# beamerファイルのコンパイルの時にエラーになるので注意.


最後に,binディレクトリの中にある.mktexlsrを実行する(なくても良いらしい)と,
beamerのサンプルファイルを,TeXShopLaTeXコンパイルするだけで,pdfのプレゼン資料が完成する.


LaTeX便利ですね.以上です.

vimのカラー表示on MAC

macで普通にvi コマンドでスクリプトを開いても,白黒の表示しかしてくれない.

どうやってやるんだろう?って思ったら,以外に簡単でした.

しかもデフォルトで,色のパッケージが入っている...素敵すぎる..


/usr/share/vim/vim73/colorsの中に,パッケージ群 (〜.vimというファイルが複数)
あるので,それの一つを .vimrcで指定するだけでOK.

たとえば,murphy.vimにしたければ,

~/.vimrcの中身に,

colorscheme murphy
syntax on

と記述するだけ.

基本,ここで,
source ./vimrc
とかやりたくなるけど,そうするとcolorscheme command not foundと怒られる.

vimは,viコマンドで起動するごとに,~/.vimrcが読み込まれるので,
sourceは実行する必要なし.

command not foundが返ってきて心配になったけど,ちゃんと反映されてました(パチパチ)

快適な環境になったので,ソースコードが捗りそうだぁ〜

ではまた.

How to use anaconda from cygwin?

Windows環境でもanaconda使えると便利ですよね.
ということで,今日はcygwinにanacondaを入れる手順です.
cygwinのダウンロードについては,cygwinサイトから行けば時間はかかりますが,
難しくないので省略)


Anaconda公式サイトから,.exeをダウンロード.

Anaconda公式サイトhttps://www.continuum.io/downloads:Anaconda公式サイト



ダブルクリックして,anacondaをインストールしていきます.

そのとき,インストール先のフォルダを覚えておき,{anaconda_dir}であるとします.

インストール環境後,cygwinを起動し,

export PATH={anaconda_dir}:$PATH

のコマンドを実行すると,PATHに追加されます.


ここで,which pythonと実行すると,

{anaconda_dir}/python

が表示されれば,anacondaへのパスの追加完了です.

失敗している場合には,which python実行時に,
/usr/bin/python
等,anaconda外のパスになっているので,パス指定に誤りがないか確認してみてください.


以上です.

Pythonにおけるリストのコピー

リストのコピーでよく間違えてしまうので,覚え書き.

正常にコピーした場合.

>> list = []
>> list.append('a')
>> list.append('c')
>> list.append('b')
>> list
>> list = ['a','c','b']
cplist = list[:]
>> cplist
cplist = ['a','c','b']
>> list.append('d')
>> list
list = ['a','c','b','d']
>> cplist
cplist = ['a','c','b']


誤った例.

>> cplist = list
>> list.append('d')
>> list

list = ['a','c','b','d']
>> cplist
cplist = ['a','c','b','d']


これをしてしまうと,listもcplistも同時に中身が変わってしまいますね.


コードを書いててときどきしてしまうミスなので,メモ程度に書いときます.

ではまた:)