俺言語。

自分にしか理解できない言語で書かれた備忘録

【Python】Pycharm設定覚書き

・行数の表示 - ON
・メソッド間の区切り線 - ON
・スペースの可視化 - ON
f:id:hukkuramamemoti:20170203191513j:plain

・補完は大文字小文字を区別するか - None(しない)
f:id:hukkuramamemoti:20170203191554j:plain

・スペルチェック - OFF(しない) これがONだと適当な変数名にいちいちアラートが出る。
f:id:hukkuramamemoti:20170203191648j:plain

・dict型を記述する際の配置 - Align on colon(コロン位置を合わせる)
f:id:hukkuramamemoti:20170203191848j:plain

・同じ変数名をハイライト 割とよく使うので分かりやすい色の方がいい
f:id:hukkuramamemoti:20170203192007j:plain

ブレークポイントを例外発生時に設定 呼び出し元への変数も参照可能なので便利
Runタブ|View Breakpoints で下記画面,チェックを入れる
https://www.jetbrains.com/help/pycharm/2016.3/creating-exception-breakpoints.html

f:id:hukkuramamemoti:20170313213721j:plain

【Python】cx_Freezeでexeファイルを作成した時のエラー

Python2.7から3.5に移行して,py2exeが使えなくなってしまったので

代わりにcx_Freezeを使った時のエラー


エラー発生時のキーワードは KeyError: 'TCL_LIBRARY'
(何故かエラー再現できなくなってしまった…。)

解決方法はsetup.pyに下記を記載すること

import os
os.environ['TCL_LIBRARY'] = "C:\\Users\\user_name\\AppData\\Local\\Programs\\Python\\Python35\\tcl\\tcl8.6"
os.environ['TK_LIBRARY'] = "C:\\Users\\user_name\\AppData\\Local\\Programs\\Python\\Python35\\tcl\\tk8.6"

どうもTkが見つからずエラーが出ているようで

上記アドレスを環境変数に入れてあげれば解決。


下記が参考になりました↓
stackoverflow.com

【Arduino,C】文字宣言時にオーバーフロー?

オーバーフローといっていいのかよくわからないけど

文字宣言のところで変数の意味が分かるように掛け算で数値を代入したとき,具体的には

unsigned long time_millisec = 135 * 1000 //msec

としてミリ秒にするため1000をかけて代入したところなぜか代入された変数は

println(time_millisec)
> 3928

なってどハマリした。


よくよく調べると整数の定数はint型なので

int(135) * 1000

135000だけどintは2byte(65536)なので2周回って
13500 - 65536 = 69464 ←まだint型より大きい
69464 - 65536 = 3928

となってしまった。

これは普通に

unsigned long time_millisec = 135000

とすれば起きない現象。

要注意。


こちらが参考になりました↓
Arduino 日本語リファレンス

【Python】pipでwhlファイルをインストールするときのエラー

Gohlkeさんのサイトからwhlファイルをダウンロードしてきて手動?でインストールしようとした際に発生したエラー。

エラーメッセージは

「***.whl is not a supported wheel on this platform.」

最初はpythonのバージョンとライブラリのバージョンが違うために起きているかと思ったが

チェックしてもバージョン違いではない。

結果的には

numpy‑1.11.2+mkl‑cp35‑cp35m‑win_amd64.whl というファイル名だった場合,

numpy‑1.11.2+mkl‑cp35‑none‑win_amd64.whl に変更するとうまくいった。

どうやらファイル名で適用バージョンやなんやら確認しているようで

それで弾かれていた模様。


下記が参考になりました↓
stackoverflow.com

【MATLAB】起動時にカレントディレクトリを自動で変更

任意のカレントディレクトリに自動で変更するには

起動時に自動実行されるstartup.mを元のカレントディレクトリに作成し,

そこに

cd c:\(任意のアドレス)と記載しておく。

するとMATLAB起動時に自動的にスクリプトが実行されカレントディレクトリが変更される。


他にも自動実行したいプログラムなどがあれば

一緒に記載しておくと自動的に実行される。

参考:
http://jp.mathworks.com/matlabcentral/answers/103866-matlab-matlab

【MATLAB】設定ファイルの保存場所

PC入れ替えなどで前の環境(文字色,背景色など)を新しい環境に引き継ぎたい場合,

下記に設定ファイルがあるのでそれを新しい環境へコピーする。


Location: C:\Users\(user_name)\AppData\Roaming\MathWorks\MATLAB\(version)
File: matlab.prf

https://jp.mathworks.com/help/matlab/matlab_env/preferences.html#buhx0ov-10



環境設定は何度かクラッシュしたことがあるのでこのファイルのバックアップを

とっておくとよいかも。

【Python】グラフの外にテキスト表示 or 対数グラフ内の右隅にテキスト表示

グラフの外にグラフ情報を表示したい場合,

または対数グラフ上にテキストを表示したい場合の方法。

対数グラフ内にテキストを表示する場合,axes.text()では位置合わせが難しい。

そういう場合はfig内での座標でテキスト表示するのが有効。


テキストの位置はグラフに対する相対的な位置指定をしたい場合が多いと思うので

fig内のaxesの位置をax.get_position()で取得すると良い。

# fig内でのaxes座標を取得,戻り値はBbox
ax_pos = ax.get_position()

# fig内座標でテキストを表示 Bboxは Bbox.x0, Bbox.x1, Bbox.y0, Bbox.y1で座標を取得できる
fig.text(ax_pos.x1 - 0.1, ax_pos.y1 - 0.05, "string")