読者です 読者をやめる 読者になる 読者になる

粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

matlab

matlabで行列の特定の値を持つ行を検出・置換・削除する

今回はfind関数を主に使っていきたいと思います。 find:特定の条件に一致する部分を調べる 等号条件 不等号条件 特定の条件に一致する部分を置換 特定の条件に一致する部分を削除 関連する文献 find:特定の条件に一致する部分を調べる 等号条件 例> 行列 …

MATLABでPDFに余白を付けずに保存Ⅲ(MATLAB)

背景 古来より我々はmatlabの作るPDFのへんてこなことに悩まされ続けてきました。 今までも以下のようなシリーズで様々に悪戦苦闘してきました。ossyaritoori.hatenablog.com ossyaritoori.hatenablog.com 他の人のツールを使おう 以下のところからツールを…

MatlabでLevenberg-Marquardt法

過去記事が地味に反応あったので調子乗って続きをば。 ossyaritoori.hatenablog.com前回のGauss-Newton法に引き続き, Levenberg-Marquardt法についてです。フィッティングの手法としてはGauss-Newtonより多用される王道中の王道ですね。 概要 アルゴリズム…

MATLABで非線形最小二乗フィッティングする手順メモ

多数のデータ群から関数フィッティングを行う場合に非線形最小二乗法を用います。MATLABにはOptimization Toolboxなどがあり,それを用いると簡単にフィッティングできます。 以下のブログなんかに解説がありますね。 MATLABで非線形最小二乗問題を解く - Py…

MATLABでNaNやInfを何とかしたい

ダジャレみたいな軽い記事です。 NaNを0に置換 Infを0に置換 種明かし よくわからんので実験 NaNを0に置換 Aという行列の中にNanがあってそれを0にする場合,以下のように書きます。 A(isnan(A))=0 なお,matlabではfor文はべらぼうに時間がかかるので なる…

MATLAB figureの背景を分けて塗りつぶす (補題:3次Spline補間とPCHIPの比較)

完成図 と 目的 使う関数area()について 塗りつぶし用コードまとめ 関数化(注意点あり) 使い方 困った点・改善点 2017/2/12 :追記 補題:spline補間とPCHIP補間 完成図 と 目的 研究柄matlabで図を書くことが多いですが,稀にmatlabの背景領域に色を塗り…

Matlab program for dft,fft (離散フーリエ変換)

突然ですがmaltabのreferenceページって結構見づらくないですか?特にClassとして実装されてる奴らはどういう処理をするのかかなりわかりづらいと私は思っています。 どの操作が必要だったか忘れがちなので記しておきます。アホらしいですが... fft in MA…

MATLAB 画像の相互情報量の計算と比較 (地図と航空写真のマッチング)

随分昔に遊んだコードを掘り出して懐かしくなったのでネットに放流します。 輝度値の二乗誤差(SSD)とはまた違う画像の相互情報量なるものを計算して画像を比較する手法の紹介です。 伝統的に医療用画像なんかのマッチングに使われている感じです。 相互情報…

LucasKanade オプティカルフロー検出 @ MATLAB

この記事はメモです。 中のコードは以下のものをほとんど流用したので自分で書いたとはあまり言い張れないなぁ。 https://jp.mathworks.com/matlabcentral/fileexchange/48744-lucas-kanade-tutorial-example-1/content/LucasKanadeExample1/html/LKExample1…

MATLABのグラフから動画を作る

聞かれたので昼休みに作ったまでです。MATLABでたくさんFigureを出した時に比較する手段として動画にするというのはよくあると思われます。本プログラムのステップは 描画 getframeによる取得 Videowriterによる書き込み の3ステップになっています。 コー…

RLS(逐次最小二乗法) program for MATLAB Ⅱ( とC言語 )

前回のコードとの違い:簡単な場合に合わせた 前回のコードよりシンプルに,Ⅰ入力Ⅰ出力系の係数のみを求めたいってなった場合,若干式が変わります。 どっちかというとこっちの方が求められている?前回の記事 ossyaritoori.hatenablog.com 目的式 なんてこと…

RLS(逐次最小二乗法) program for MATLAB

2016/7/4 追記 背景:MATLABで使いやすい逐次最小二乗法のコードがない 組みました ざっくりした説明? 具体的な式 その他、忘却係数について ソースコード (関数版) ソースコード (クラスファイル版) 2016/7/4 追記 1入力1出力の系での推定は次の記事プ…

MATLABシンボリックでサーボ系設計

シンボリックでいろいろ作ったコードを保存するコーナーです。* コードの内容 プラントのABCD行列が数値で与えられた時に 状態フィードバックのF行列と状態推定器のK行列,1型積分器の係数を決定するところまで 半自動化しました。 キモはこれです。 特性方…

MATLAB solveでRootOfとかいう表記が出る場合

symbolicmath Toolboxを最近使うようになったもののいろいろとよくわからないことが多いので なにか問題にハマった時にはとりあえずメモをするようにしています。環境は MATLAB2015a です。 solveで方程式を解いたのにRootOf(~,z,1)となってよくわからない s…

MATLAB シンボリック変数の行列への代入に関するメモ

MATLABのシンボリック変数を用いた計算はとっても便利ですよね。コーディングも簡単なので効率良く使えるなら積極的に用いていきたいですが, 自分がハマったところをちょっと書き記しておきます。 シンボリック変数の行列やベクトルへの代入 以下のように事…

MATLAB ラベルが図からはみ出る

matlabのデフォルトフォントサイズをいじると plotyyなどの一部のラベルがはみ出るという報告を受けています。時間がないのでまた今度に内容をリファインしますがとりあえず今回は話題提供をば。 仕様環境 環境というか以下の設定をデフォルトにstartup.mに…

MATLABで余計な余白をつけずに図を保存(MATLABの図問題 Ⅱ)

記事概要 plotで作ったfigureを保存する時の余白をなくしたい! これに尽きます。序盤は書き方について,記事最終部には関数化したものが置いてあります。 記事概要 MATLABのsaveasで保存するときに余計な余白を作らない方法 コードの簡単な解説 余談:余白…

MATLABで自動でファイル名を分割・生成

ときどき次のような言葉を思い出します。「コンピュータは繰り返し作業が得意なのだから コンピュータに対して繰り返し人力でInputするのは何か間違っている。」まったくもってその通りで最近これに気をつけてプログラムを組もうと意識しています。 背景と目…

ベクトルの列方向への複製

最近MATLAB関連の記事しか書いてないな。上顎の親知らずの歯ブラシ届かない所が明らかに虫歯でガッツリ陥没していて じわじわ歯痛を感じつつある今日このごろ。本当に怖い。 親知らずなんで要らんとこに生えるねん… 今回は次のようなことがしたいんす。とい…

モデル配列とその扱い

伝達関数の配列の初期化で3次元配列を使うのがキモイという話をしたが 以下の記事が公式に用意されていてとてもわかり易かった。 jp.mathworks.com sys = tf(zeros(1,1,10));この記述はもともとはMIMOシステムのために用意された仕様?のようで 「 1*1行列か…

伝達関数の配列とplot ②

この記事は以下の記事を前提として書いています。ご参考までに。伝達関数の配列とplot ① - 粗大メモ置き場MATLABでevalを用いる(sprintfを用いる) - 粗大メモ置き場 さてさて前回伝達関数の配列を用意して格納するところまでやったので これをplotしたいと…

伝達関数の配列とplot ①

課題やらなにやらで,変数を徐々に変化させながらBode線図なりステップ応答なりをプロットしたい場合がある。 もちろんやりようはいくらでもあるのだが, 折角なので伝達関数の配列を用意してプロットを繰り返すということを行ってみたいと思う。実は意外と…

MATLAB の図問題

なんだか割と自分でこの記事にリンク飛ばしているので時々更新するようにします。 この頃は ですます調 か である調 か統一されていなかったのでなんか歯痒いですが我慢してください。 [第一回更新: 2015/10/15 ] matlab大先生はとっても便利☆なシミュレー…

MATLABでevalを用いる(sprintfを用いる)

先輩にevalを用いるとコードを圧縮できると聞いてメモ。 ざっくり言うと eval(文字列) と書くと コード上にその文字列をコマンドとして実行したのと同じ結果を出すということらしい。 これだけ聞くと??って感じであるが,例えば次のように使う。 eval(['A'…