スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【C++】mainなどの関数の中では大きな配列を確保できない

これがSegmentation faultになるのに対して

これは正しく実行される。

グローバル変数はヒープに取られるのに対して、
ローカル変数はスタックに積まれていく。
スタックのサイズは制限されていることが多く、
(bashならulimit -aで確認できる。8192KBだった)
bool型は1byteなので配列のサイズは10000001/1024≒9765KBとなり
スタックのサイズ制限を超えてしまうので、
メモリリミットより小さいがローカル変数として確保できない。

[参考]
http://homepage2.nifty.com/well/Variable.html
スポンサーサイト

動的時間伸縮法(DTW)をPythonで試してみた

ここ数ヶ月くらい、ある時系列データを集めていたのですが、
そのデータを扱うにあたってまずデータを分類したいと思い
クラスタリングについて調べたところ
どうやらクラスタリングにはまず距離を定義しなければいけないらしい。

時系列データの距離?は?と思っていたら
このようなページがありました。

動的時間伸縮法 / DTW (Dynamic Time Warping) を可視化する
http://sinhrks.hatenablog.com/entry/2014/11/14/232603


Rの{TSculst}というパッケージを使えば簡単に計算できるそうですが、
有り難い事にDTW距離算出の実装を載せてくれているので
Python用に書き直してみました。


英語力低すぎて英語版Wikipediaがあまり理解できなかったのですが、
dは点同士の距離を定義する関数(初期値は差の絶対値)となる引数で、
windowは、ある点から距離を計算する対象となる点を
windowで指定した範囲に制限する場合の引数であってると思います。

参考にさせて頂いたページにならって
RのデータセットAirPassengersでテストするようにしていますが、
PythonでRのデータセット利用する方法については
以下のページを参照してください。めっちゃ便利です。
PythonでRの標準データセットを使う。
http://kumamotosan.hatenablog.com/entry/2014/03/02/231742

Xcode6でサンプルコードSonofGrabのビルドができない

実行中のウィンドウのリストを取得する方法が知りたくて
SonofGrab というサンプルに行き着いたのですが
エラーでちゃいました。

環境は OSX10.9.4 Xcode6.1.1 です。

まず、古いSDKが指定されたままでビルドができないので
Build SettingsからBase SDKを自分のOSにあったものにします。
するとビルドが行われますがそこでもエラーがおきます。
適当にぐぐると以下のページが見つかります。

objective c - Linking error for inline functions - Stack Overflow
http://stackoverflow.com/questions/12844729/linking-error-for-inline-functions


具体的には
Controller.mの71行目のinlineの前にstaticをつけるだけです。

【python】文字列のバイト数を取得する

str型の文字列sならlen(s)とするだけでバイト数が取得できます。
てっきり文字数が返ってくるものだと思っていたのでメモ。

ちなみに文字数の取得は len(s.decode('utf-8'))
マルチバイト文字が入ってない場合はバイト数=文字数なのでそのままlen(s)でも可能。

JQuery mobileでPhonegap(Cordova)アプリをつくる

cordova4.1.2で動作確認しております。

基本的には普通にJQuery mobile使って書くだけなんですが、
そのままだと、iOS7.0以降の上部のステータスバー的なものと
JQuery mobileのヘッダが重なってしまいます。

そのため、iOS7.0以降でのみヘッダの上にマージンをが設定されるようにします。
.css()とかでやってもpage遷移後に機能しなかったので、
style要素を動的に追加する方法にしたらうまくいきました。

まずwindow.deviceを使うためにpluginを追加します。
$ cordova plugin add org.apache.cordova.device

ソースは以下の通り。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。