MATLAB melbankmとは
melbankm
voiceboxに入っているフィルターかませる関数。これを元信号に乗算すればフィルターをかけたことになる。
詳細は以下のURL
使い方
melbankm(p,n,fs,fl,fh,w)
をとり、
- p : フィルターの数
- n : FFTの一つの窓に含まれるデータ数
- fs : サンプリング周波数
- fl : 最小周波数
- fh : 最大周波数
- w : (任意)設定
melw = melbankm(p,n,fs,fl,fh,w)
(signal) * melw
これだけでいける。
利用者がいないのか、それとも英語だけでいけるからなのかわからないが英語くらいしかページがなかったし、あとはもう中国語になっていた。なので支援も兼ねて。
TeXworksのplatex有効化にいろいろ頑張っているようだけど・・・
TeXworksを日本語で使うにあたって
のような所謂、platexのタイプセットを追加して・・・とある。もちろんUbuntuでの話。
だけどさ
例えばコマンド設定のところでlatex -interaction=nonstopmode %.tex
ってある。これをさplatex -interaction=nonstopmode %.tex
にすれば動いてしまうわけですよ。
pをコマンドに追加すれば終了なわけで、/usr/local/bin
に須藤で追加できない環境下だったら先に進めないわけですよ。
こういう方法もある。目的はさっさとTeXworksを動かすことなので手段を間違えると人によっては詰んでしまう。
Pythonで並列処理入門
入門編でやれること
リストを順に処理するときに並列で処理したい!
data_list = ["a", "b", "c", "d"] for i in data_list: #Do something
こういうのをコア数に応じて並列で処理してさくっと終えたい。ときに使える。
どうやるか
from multiprocessing import Pool data_list = ["a", "b", "c", "d"] def wrapper_main(nakami): #Do something myprocess = Pool() myprocess.map(wrapper_main, data_list) myprocess.close()
実際に書く量はほとんど変わらない。もちろん、ひとつのリストの中身だけで完結することが大前提(並列処理って言ってるしね)。
少しずつ見ていきたい。
from multiprocessing import Pool
これで呼び出し
def wrapper_main(nakami): #Do something
本来やりたい処理をここに入れる。変数nakamiはdata_listの中身のこと。ラッパーを書くときは、リストを引数に与えるのではなくリストの中身を与えた場合の処理を書く。
myprocess = Pool()
myprocess.map(wrapper_main, data_list)
myprocess.close()
これはほとんどおまじない。Poolの中に例えばPool(12)とすると12コアだけ使ってくれる。何も入れないとフルで使うことになる。 肝心なのはプロセスオブジェクト.map(関数名, リスト)という使い方。
これさえ守ればあっという間にマルチプロセスができる。
コアごとに違う処理を押し付けたい場合やwrapperの引数が二次元リストだったり複数あったりする場合は中級編として既存のブログ等を参考にすればできる。マルチスレッドとマルチプロセスの違いなども割愛。
pandasで条件にあった行を抽出してさらに列を指定する
やりたいこと
ある巨大行列のなかで、特定の列の値がXである行を抽出する。そしてさらに利用する列を指定する。
コード
import pandas as pd df = pd.read_csv("test.csv", header=None) df[df[2] == X].ix[:,5:90]
df[2] == X
が第2列の値がXである行を抽出してくれる。
更に加えて、.ix[;5:8]
をすることで抽出した行の中から5列から7列目までの列を取り出してくれる。
とても便利ですねpandas
タプルの罠から抜け出すために
(123,) ←こういうやつ
(123,)は、行列のようなもの。
numpy.loadtxt()とかするとこんな感じになってしまう。
すると計算できなくなったりして本当に困っていた。
行列計算ができなくなる。 dot(a, b)
とかができなくなってしまう。
できれば見たくない。。。。というくらいに。
reshapeなんてあったのか
x = (123, )もx.reshape(123,1)であっさり型が変わるようだ。
なんてこった
結局、(123, )こいつはなんて呼ぶのだろう。タプルかと思ったけど、違っているのかもしれない!!