超音波流体屋のプログラム備忘録
matlab-octave
最終更新:
usapfrog
-
view
条件分岐
インタラクティブだと動かないかも。
- if condition
- statement
- elseif condition
- statement
- else
- statement
インタラクティブで動かすなら三項演算子的に
var = (condition)*x + (!condition) *y
ループ
できるだけ行列演算で済ます方が賢い
- for I=1:col
- A(:, I) = dat((I-1)*row+1:I*row);
ファイル読み書き
データをスクリプト言語で行列に整えてload
saveして結果をスクリプト言語処理が楽。
saveして結果をスクリプト言語処理が楽。
Cとほぼ同関数・フォーマットの入出力も可能
- line = fgetl(fid);
- while ischar(line)
- disp(line)
- line = fgetl(fid);
注意事項
- インデントにtab文字は避けた方が良い。バッチランでは問題ないが、インタラクティブでバグる。
tab tab と入った時にターミナルなどの機能で補完がなされるため。
テキストエディタの設定でmatlabモードはtabをスペースに変換する設定にする。
テキストエディタの設定でmatlabモードはtabをスペースに変換する設定にする。
- 複素数で一次元gradient関数を取るときは、複素共役をとること。そのまま入力すると虚数の符号が逆転する。二次元のときは問題無し。なんでだろね。
dy = gradient(conj(y));
matlabでのみエラー
- 算術+代入演算子(+=, -=, *=, /=)
- ダブルクォーテーションでの記述
重回帰分析
z=a+b*x+c*yのとき
X=[ones(size(x)), x, y]
[a;b;c]=X¥zで求まる。
X=[ones(size(x)), x, y]
[a;b;c]=X¥zで求まる。