雲雀は高く空を舞い このページをアンテナに追加 RSSフィード

「ひよこは高く空を舞い」について

2009-11-18

[]GUIDE使用時、guiパーツ間で使い回すデータを保存するにはguidata(hObject, handles)を使う GUIDE使用時、guiパーツ間で使い回すデータを保存するにはguidata(hObject, handles)を使う - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - GUIDE使用時、guiパーツ間で使い回すデータを保存するにはguidata(hObject, handles)を使う - 雲雀は高く空を舞い GUIDE使用時、guiパーツ間で使い回すデータを保存するにはguidata(hObject, handles)を使う - 雲雀は高く空を舞い のブックマークコメント

タイトルで言い尽くした間が無きにしもあらず。

今までは、

set(handles.guiparts, 'UserData', data)

などとしていたんだけど、

  • 1つのパーツに1形式のデータしか保存できない
  • どのパーツにどのデータが保存されているか分からない

ということで不便だし、スマートじゃないなと思っていたんだけど、こういう時はguidata(hObject, handles)を使えばよいのだった。

guidata(object_handle,data) は、変数 data を GUI データとして保存します。

object_handle が Figure のハンドルでない場合、オブジェクトの親 Figure が使用されます。data は、任意の MATLAB 変数ですが、通常は、必要に応じて新しいフィールドの追加が可能な構造体とします。

MATLAB Documentation

% hObject  : handles.<the_guipart>
% handles  : handles

% store
handles.userdata1 = userdata1;
handles.userdata2 = userdata2;
guidata(hObject,handles)

% load
handles = guidata(hObject)

[]git入門メモ (1) ローカル編 git入門メモ (1) ローカル編 - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - git入門メモ (1) ローカル編 - 雲雀は高く空を舞い git入門メモ (1) ローカル編 - 雲雀は高く空を舞い のブックマークコメント

ここら辺を参考にしました。

f:id:allegro:20091117165308p:image

gitの概念図 from Git - openSUSE

何はともあれ初期設定

git config --global user.name "allegro"

git config --global user.mail allegro@allegrovivace.jp

ローカルリポジトリの作成

mkdir pysom

cd pysom

git init

git remote add origin git@github.com:git_user_name/pysom.git

READMEファイルの作成

このファイルの中身がGitHubのプロジェクトトップに表示される

touch README

無視するファイルの設定

リポジトリディレクトリに.gitignoreを作成.

# General Noise

.*

!.git*

# OSX noise

.DS_Store

~/.git/info/excludeに統一設定可能

# git-ls-files --others --exclude-from=.git/info/exclude

# Lines that start with '#' are comments.

# For a project mostly in C, the following would be a good set of

# exclude patterns (uncomment them if you want to use them):

# *.[oa]

# *~

/data

/cache

/includes

ローカルリポジトリにコミット

新規ファイルがない場合

git commit -a -m 'comment here'

追加したファイルがある

git add -A

git commit -a -m 'comment here'

削除したファイルがある

git rm filename

git commit -a -m 'comment here'

GitHubにプッシュ

gut push origin master

(origin master)は省略可能

[] git入門 (2) githubとやりとりする  git入門 (2) githubとやりとりする - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  git入門 (2) githubとやりとりする - 雲雀は高く空を舞い  git入門 (2) githubとやりとりする - 雲雀は高く空を舞い のブックマークコメント

gitのリモートリポジトリをローカルへ。

cloneの作成

git clone git@github.com:pneu/chat.git

このときchat/という作業領域も確保される

ブランチを切る

git branch <branchname>

ブランチの確認

git branch

* master

branch1

*がアクティブなブランチ

切ったブランチへのスイッチ

git checkout <branchname>

リモートリポジトリにローカルリポジトリの変更を反映

git push origin <branchname>

リモート<origin>のブランチをローカルリポジトリ<master>にコピー

git fetch origin <remote-branch>:<new-local-branch>

追記

コメントいただきました。

clmemo@aka: Git で他の人と共同開発する

とかを見るとちょっとわかりやすい、ような。ちょっとまだ概念をちゃんとつかめてないんだけど、

git fetch

でリモートリポジトリの情報を更新(?) (この動作は、自分自身の(master含む)ブランチについては何も変更しない)。このあと必要事項だけcheckoutするとか何とか。

WEB+DB PRESS Vol.50がgit特集だったようなので入手してこよう。


後はここら辺見る

ふ2009/11/18 01:51"git fetch origin <src>:<dst>" は間違いではありませんが古風ですね。現代のgitなら、単に"git fetch"して、origin/<branch>から使う、というのが標準的だと思います。

ネタ元のウェブページを更新してもらったら良いかも知れません。

allegroallegro2009/11/18 10:43ありがとうございます!そこら辺はちゃんと押さえておかないと使用時に混乱しそうなので勉強します、ありがとうございました!

pneumasterpneumaster2009/11/18 20:03こんにちは。
gitコマンドでの挙動を調べつつ追記いたします。

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091118

2009-11-17

[][]Numpy速い! Numpy速い! - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - Numpy速い! - 雲雀は高く空を舞い Numpy速い! - 雲雀は高く空を舞い のブックマークコメント

Pythonの行列・配列ライブラリNumpyは、高速に行列演算が可能とのことだったので,果たしてどのくらい高速なのかしらと言うことで、2個の100次元ベクトル間の距離を計算してみた。距離の計算方法は次の二つ(に無名関数バージョンを追加)

計算環境はPython 2.6 (64bit, on MacOSX 10.6, MacBookPro, 2.53GB C2D, 4GB mem)

def getdistsA(unitA, unitB):
        #dim = len(unitA)
        dist = sqrt(sum([(unitA[x] - unitB[x])  for x in arange(dim)]))
        return dist[0]

def getdistsB(unitA, unitB):
        return sqrt(dot((unitA-unitB)**2, E))
getdistsC = lambda A,B:sqrt(dot((A-B)**2, E))

これを10k回計算してかかった時間を比較した。

tt0 = datetime.datetime.now()
for i in arange(1000*10):
    A = random.random((dim,1))*10
    B = random.random((dim,1))*10
    d= getdistsA(A,B)

tt1 = datetime.datetime.now()
t0 = tt1 - tt0

したところ、リスト内包形式で計算した場合は、10.69秒。行列演算した場合は関数形式で0.343秒、無名関数で0.347秒でした。(ちなみに、距離計算無しでAとBを10k回定義したところ0.231秒でした。

という感じで、NumPyを使った場合計算次第で、使わない場合の3%位の計算時間で実行が可能でした。早い。

ちなみに、matlabで同じ事をした場合0.536秒だったのでもしかしたらPythonが遅いだけかもしれません。


dim = 100
E = ones(dim,1);
funct= @(A,B) ((A-B).^2)*E
tic 
for i = 1:1000*10
   A = rand(1,dim);
   B=rand(1,dim);
   C=funct(A,B);
end
toc
トラックバック - http://chick.g.hatena.ne.jp/allegro/20091117

2009-11-16

som grid som grid - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - som grid - 雲雀は高く空を舞い som grid - 雲雀は高く空を舞い のブックマークコメント

1) 普通のrectangle lattice.最近傍点(d=1)は4点。次点はd=sqrt(2)(4点)でその次はd=2(4点)

f:id:allegro:20091116211942p:image

2) 偶数行を1/2だけずらして、縦方向の距離をsqrt(3/4)倍する

f:id:allegro:20091116211941p:image

3) 適当に線を足す

f:id:allegro:20091116211940p:image

4) hexagonal lattice.最近傍点(d=1)は6点。次点はd=sqrt(3)(2?)でその次はd=2(4?)。

f:id:allegro:20091116211939p:image

続きを読む

[][]バックグラウンドで関数を実行する バックグラウンドで関数を実行する - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - バックグラウンドで関数を実行する - 雲雀は高く空を舞い バックグラウンドで関数を実行する - 雲雀は高く空を舞い のブックマークコメント

バックグランドで関数を実行するには%bg python_statementを使う

バックグランドで実行しているものを確認するにはjobs.jobs_runかな?

ちなみにiPython上でのスクリプトの実行は%run -i foo.pyバックグランドでスクリプトを実行するには%bg _ip.magic('run -i foo.py')

[][]モジュールのリロードとディープリロード モジュールのリロードとディープリロード - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - モジュールのリロードとディープリロード - 雲雀は高く空を舞い モジュールのリロードとディープリロード - 雲雀は高く空を舞い のブックマークコメント

モジュールを再読込する場合はreload。モジュールないでimportされてるモジュールまで含めてリロードする場合はdreload

[][] 2009-11-16 - 雲雀は高く空を舞い を含むブックマーク 2009-11-16 - 雲雀は高く空を舞い のブックマークコメント

NumPyに関する適当にリンクをまとめる

SciPyについては何ができるのかあんまり把握してない…

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091116

2009-11-15

[][]numpy for matlab users numpy for matlab users - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - numpy for matlab users - 雲雀は高く空を舞い numpy for matlab users - 雲雀は高く空を舞い のブックマークコメント

この二つがすごい参考になる。

以下この二つからの適当な写し。

matlabnumpy
a(:,1)a[:,1]
[a; b]vstack( (a, b))
size(a)a.shape

[]loadmap loadmap - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - loadmap - 雲雀は高く空を舞い loadmap - 雲雀は高く空を舞い のブックマークコメント

Initialize

  • map initialize
    • shape
      • sheet <ok>
      • toroid
      • sphere
      • cylinder
    • lattice
      • rectangle <ok>
      • triangle
      • hexagon
  • unit initialize
    • random initialize <ok>
    • linear initialize

Training

  • distance calc
    • euclidean dist <ok>
    • city dist
    • 測地線距離
  • training method
    • sequencial <ok>
    • batch
  • neighborhood function <ok>
  • learning ratio function <ok>
  • training phase
    • rough tune
    • fine tune
  • online, growing, supervised, semi-supervised, etc...

Visualize

  • codebook visualization
    • 2d visualization <ok>
    • 2-d projection
  • u-matrix <ok>
トラックバック - http://chick.g.hatena.ne.jp/allegro/20091115

2009-11-12

[]hsmc hsmc  - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - hsmc  - 雲雀は高く空を舞い hsmc  - 雲雀は高く空を舞い のブックマークコメント

errorurlsからpostを取得。JSON Errorがずいぶんな量になるので実行時は何らかの形で分割すると良いかも。

r = salvage2.register_errorfiles()
errorurls = r.collect_urls()

type = errorurls.keys()[0]
posts = []
eurl0 = []
eurl = []

for url in errorurls[type]:
    try:
        post = r.get_a_post(url=url)
    except:
        eurl0.append(url)
    if post:
        posts.append(post)
    else:
        eurl.append(url)
    time.sleep(3*random.random())

あとこの、eurlの処理はどうするんだっけか…

[]error on Adobe Unit Types.osax (Snow Leopard) error on Adobe Unit Types.osax (Snow Leopard) - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク - error on Adobe Unit Types.osax (Snow Leopard) - 雲雀は高く空を舞い error on Adobe Unit Types.osax (Snow Leopard) - 雲雀は高く空を舞い のブックマークコメント

最近何か、Macの調子があまりよろしくないなーと思ってconsole眺めていたら、iPhoneの同期中に Adobe Unit Typesのえらーが出てるのを発見

09/11/12 8:25:37 [0x0-0xd50d5].com.apple.iTunes[7019] 2009-11-12 08:25:37.642 osascript[7096:607] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: dlopen(/Library/ScriptingAdditions/Adobe Unit Types~.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found. Did find:

Apple Script関係の何かだとか。インストールされているのが32bit版で64bit appからロードしようとしてこけてる見たい。

解決策はこちら。こちらから最新版をダウンロードして /Library/ScriptingAdditionsに入れればオッケー。

som_unit_coords  som_unit_coords - 雲雀は高く空を舞い を含むブックマーク はてなブックマーク -  som_unit_coords - 雲雀は高く空を舞い  som_unit_coords - 雲雀は高く空を舞い のブックマークコメント

Input

topology

  • topology struct from som_set or map struct
  • map size vector

lattice

  • rectangular or hexagonal

shape

  • sheet
  • cylinder
  • toroid

Output

[munits x k(dimmention)]

See also

som_unit_dists

som_unit_neighs

トラックバック - http://chick.g.hatena.ne.jp/allegro/20091112
テクノラティプロフィール