MATLAB - めっくろぐ

フィード

記事のアイキャッチ画像
単純なRANSACをMATLABで試す
MATLAB - めっくろぐ
原理のお勉強用に,MATLABでとても単純なRANSACアルゴリズムを作ってみました. 下記のPythonを参考にさせて頂き,作ってみました. qiita.com clear; close all; % true values a = 0.5; b = 0.3; % samples x = 0:0.01:10; points = a * x + b + 1 * randn(size(x)) ... + (randi(100,1,length(x)) == 1) .* rand(size(x)) * 1000; %% 比較用の最小二乗法 % 参考 https://jp.mathworks.com/help/matlab/data_analysis/programmatic-fitting.html model_poly = polyfit(x,points,1); y_poly = polyval(model_poly,x); %% RANSAC model_ransac = ransac2D(x,points); y_ransac = applyModel(model_ransac, x); %% プロット plot(x, points, x, y_poly, x, y_ransac) ylim([0 10]) xlabel('x'); ylabel('y'); % legend1 = sprintf('raw: a = %0.3f, b = %0.3f', a, b); legend2 = sprintf('polyfit: a = %0.3f, b = %0.3f', model_poly(1),model_poly(2)); legend3 = sprintf('RANSAC: a = %0.3f, b = %0.3f', model_ransac(1), model_ransac(2)); legend(legend1, legend2, legend3,'Location','best'); %% function out = ransac2D(x, points) % パラメータ max_iter = 100; % ループの最大回数 t = 2; % 誤差の閾値 inlier_ratio = 0.8; % インライアの割合 % sample...
2年前
記事のアイキャッチ画像
実務家のためのカルマンフィルタの資料集
MATLAB - めっくろぐ
勉強や,困ったときに読むべき資料集です. そもそもカルマンフィルタって何 裏口からのカルマンフィルタ入門 これを見れば,まずは雰囲気を掴めます. www.youtube.com 一人一冊必携書 カルマンフィルタの基礎 カルマンフィルタの基礎 作者:足立修一,丸田一郎 東京電機大学出版局 Amazon 絶対買いましょう. MATLAB例題も登場し MATLABコードは汎用性が高く, もっとサンプルコードが見たい MyEnigma myenigma.hatenablog.com myenigma.hatenablog.com myenigma.hatenablog.com myenigma.hatenablog.com MATLAB と Python のシミュレーション例が掲載されています. 詳解 確率ロボティクス 詳解 確率ロボティクス Pythonによる基礎アルゴリズムの実装 (KS理工学専門書) 作者:上田隆一 講談社 Amazon Python での実装例が豊富です. www.youtube.com バッテリマネジメント工学 バッテリマネジメント工学 作者:足立修一,廣田幸嗣,押上勝憲,馬場厚志,丸田一郎,三原輝儀 東京電機大学出版局 Amazon 「カルマンフィルタの基礎」と同じ著者陣なので, MATLAB例題の豊富さは同様です. システム同定の切り口からもカルマンフィルタを見ていくと, 具体的な実用例 計測と制御 2017 年 56 巻 9 号(カルマンフィルタ特集号) www.jstage.jst.go.jp 計測と制御のカルマンフィルタ特集号が,今月から全文無料で読めるようになっている!https://t.co/E2mJCgKmr8 — めっくろぐ (@mech_log) 2018年9月12日 カルマンフィルタの基礎と実装 カルマンフィルタの基礎と実装 -自動運転・移動ロボット・鉄道への実践まで- (設計技術シリーズ) 作者:綱島 均,橋本雅文,菅沼直樹 科学情報出版株式会社 Amazon 著者らの論文成果を基に, GNSSを使った自己位置推定の話(外れ値除去の方法など)です. ドローン工学入門 ドローン工学入門 - モデリングから制御まで - 作者:健蔵, 野波 コロナ社 Amazon 自分はドローンは全く関わりありません...
2年前
記事のアイキャッチ画像
matファイルの名前を日付にして,自動保存する
MATLAB - めっくろぐ
MATLABの実行結果を繰り返し保存したいとき, save(datestr(now,'yyyymmdd_HHMMSS')) この1文をスクリプトの最後に入れておけば, 参考資料 jp.mathworks.com
6年前
記事のアイキャッチ画像
ホイールローダの経路追従制御のMATLABコード
MATLAB - めっくろぐ
はじめに 建設機械の一種に,ホイールローダがあります. こうした構造は, 除雪車などで利用されています. ちなみに,こうした車両を日本の公道で運転する場合, 小型特殊自動車免許(小特)が, 大型特殊自動車免許(大特)が必要になります. バケットで土砂を掬ったり除雪したりする場合には, gazoo.com 以前,大特の免許を取った時にホイールローダを運転したのですが, 車両モデル・制御則 以下の論文をもとに,MATLABのサンプルプログラムを起こしてみました. アルゴリズムの詳細は,以下論文の通りです. 非線形直線経路追従制御" 日本機械学会論文集 C編 76 巻 (2010) 763 号 www.jstage.jst.go.jp 車両モデルは,タイヤ横滑りが生じないと仮定した,幾何モデルになります. ダイナミクスを考慮しないこのモデルでも,車両の特性を記述することができると思われます. に基づいて車両を動かすことが出来ると考えられます. シミュレーション結果 赤色の目標直線経路に対して,5 m のオフセット開始位置からスタートした車両が, MATLABサンプルコード 下記のGitHubリポジトリに載せています. github.com 車両パラメータは,中型ホイールローダであるコマツ WA100-8をもとに,適当な値を決めています. http://www.komatsu-kenki.co.jp/products/download/pdf/wheel_loader/WA100-8.pdf
6年前
記事のアイキャッチ画像
MATLABをCUIで使う方法
MATLAB - めっくろぐ
MATLAB and Simulink Student Suite R2018b 出版社/メーカー: MathWorks メディア: DVD-ROM この商品を含むブログを見る シェルからMATLABを呼び出すことができると知ったので, 起動するだけならば方法は単純で,シェルで, matlab と打つだけです. CUIのコマンドウィンドウが立ち上がります. 当然ながら,お馴染みのMATLABのGUIと同じ機能を持ちます. Simulinkだって起動できます. MATLABよりも起動がある程度は速いです. 以下の公式ドキュメントにあるように,起動オプションを指定することができるので, シェルスクリプトに命令を書いておいて,matlabスクリプトを実行させる,なんてこともできます. jp.mathworks.com 例えば,script.m という mファイルを実行したければ, matlab -nodesktop -nosplash -r script 参考資料 www.nemotos.net d.hatena.ne.jp jp.mathworks.com jp.mathworks.com
6年前
記事のアイキャッチ画像
MATLAB ヤコビアンを数値的に計算
MATLAB - めっくろぐ
jp.mathworks.com MATLABには,シンボリック関数を渡すとヤコビアンを計算してくれる jacobian 関数がありますが,無名関数に対してヤコビアンの計算ができないものかと調べていたところ,ヤコビアンの数値解を求める関数を作っている方を発見しました. http://jp.mathworks.com/matlabcentral/fileexchange/13490-adaptive-robust-numerical-differentiation ヤコビアンだけでなく,数値微分などもあります. 使い方はこんな感じ↓ https://jp.mathworks.com/matlabcentral/answers/28066-numerical-jacobian-in-matlab
7年前
記事のアイキャッチ画像
MATLABでの関数の活用法
MATLAB - めっくろぐ
mechlog.hateblo.jp MATLABには様々なタイプの関数が用意されていますが, MathWorksのドキュメンテーションを読んでも,使い道がピンと来ないと思います. 関数型プログラミング入門 for Matlab ユーザー from Ichiro Maruta www.slideshare.net なお,以下の書籍の巻末にも,上のスライドと同様の内容が付録として収録されているうえ, スクリプトが多数掲載されているので,併せて読むと勉強になります. カルマンフィルタの基礎 作者:足立修一,丸田一郎 東京電機大学出版局 Amazon www.jstage.jst.go.jp
7年前
記事のアイキャッチ画像
MATLAB 効率化のための関数化
MATLAB - めっくろぐ
r-dimension.xsrv.jp 他のプログラミング言語と同様,MATLABでもスクリプトを可能な限り関数化することによって,効率よくシミュレーションを行えます. 関数化することによるメリットとしては, 可読性が高まる 再利用しやすくなる 処理速度の高速化に貢献する といったことが挙げられます. MATLABのプログ​ラミングにおいてどの​ように関数をコールす​れば高速化ができます​か? jp.mathworks.com MATLABで関数を作る方法は,3つ考えられるので,整理して紹介します. 1.関数毎に mファイルを作る 最も汎用性が高く,一般的な方法だと思われます. jp.mathworks.com 2.スクリプト全てを関数化する function [] = test_script() % function1, function2 を含むメインの処理の記述 clear; close all; A = function1(1.0, 2.0) B = function2(1.5, 2.5) end function [a] = function1(b, c) % 自作の関数 その1 a = b + c; end function [d] = function2(e, f) % 自作の関数 その2 d = e * f; end 上記の様に記述し,"test_script.m"という名前で保存すれば, スクリプト内の全部分が関数となる1つのmファイルが出来上がります. しかし,メイン部分まで関数にすることで,ワークスペースには変数が残らないようになります. スクリプトを修正していく,という書き方はできません. 3.スクリプトに関数を含める % function1, function2 を含むメインの処理の記述 clear; close all; A = function1(1.0, 2.0) B = function2(1.5, 2.5) function [a] = function1(b, c) % 自作の関数 その1 a = b + c; end function [d] = function2(e, f) % 自作の関数 その2 d = e * f; end R2016bから導入された機能です. 自作の関数を,スクリプト内で見渡す...
7年前
記事のアイキャッチ画像
MATLABで自分用の設定を保存する
MATLAB - めっくろぐ
はじめに jp.mathworks.com MATLABを利用する際,startup.mという名前のファイルを作り, MATLAB起動時に自動的にstartup.mが読み込まれ,そこに書かれた設定が適用されます. 私は,パスの追加,figureの設定など, ichiro-maruta.blogspot.jp 初心者によるMATLABメモ|起動時にデフォルトカラーなどを設定する (起動時にスクリプトを実行) MATLABコード %% 自作ライブラリの追加 % (自作関数などを,起動フォルダ下のmy_funcフォルダ内に置く) addpath(genpath('myfunc')); %% 色に関する設定 % プロットの色を指定 % (plot関数などで色を指定しない場合,順番に以下の色が使われる) co = ... [255, 0, 0; % 赤 0, 0, 255; % 青 0, 128, 0; % 緑 222, 125, 0; % 茶 204, 8, 204; % 紫 255, 0, 255; % マゼンタ 64, 64, 64]; % 灰色 set(0,'defaultAxesColorOrder',co/255); % Figureウインドウの色(白に設定) set(0, 'defaultFigureColor',[1 1 1]); % Figureをコピーしたときのプロットボックスの色(透明に設定) % (PowerPointなどにFigureをコピーした際に,プロットボックスが透ける設定) set(0, 'defaultAxesColor','none'); %% フォントの設定 % グラフ軸のフォントの設定 set(0,'defaultAxesFontSize',11); set(0,'defaultAxesFontName','times new roman'); set(0,'defaultAxesXcolor','k'); set(0,'defaultAxesYcolor','k'); set(0,'defaultAxesZcolor','k'); % テキストのフォントの設定 set(0,'defaultTextFontSize',11); set(0,'defaultTextFontName','times n...
7年前
記事のアイキャッチ画像
MATLABのイースターエッグ
MATLAB - めっくろぐ
今このブログのロゴに使っているハスキー犬らしき画像ですが, MATLABの隠しコマンド的なヤツで出したものです. "spy" とだけ打ってやると, このように. これ,著作権とかあるのでしょうか...? ちょっと引っかかってます... ちなみに,2010b以前では,出てくる絵が違いました↓ こいつは何...? 新しいMATLABでも,この絵を出すことができます. コードはこちらに書いてありました↓ undocumentedmatlab.com
7年前
記事のアイキャッチ画像
MATLABのService End Date
MATLAB - めっくろぐ
昨夏、自習用に MATLAB and Simulink Student Suite 2015b を購入した。 ところが、Mathworks社のアカウントページでライセンスを見てみると、"Service End Date" という怪しげな文字が。 たった1年間で使えなくなってしまうのか? 1万円も出したのに。 そしてその1年後の先日、期限切れをむかえた。 結論としては、MATLABを動かすこと自体は可能だった。 しかし幾つか制約がついた。 "Service End Data" は、それ以降、新たなサービスを入手できなくなる期限、ということらしい。 まず、今後リリースされる新バージョンの入手はできない。 私のMATLABの有効期限は2016年8月31日だったので、それ以前にリリースされている MATLAB 2016a までは入手できるが、 今秋リリース予定の MATLAB 2016b 以降の入手はできない。 有効期限以前にリリースされたバージョンを、期限切れ後に際ダウンロードすることは可能である。これは実際に確認できた。 さらに、Toolboxの追加購入が不可能になってしまった。 Toolboxを購入しようとすると、 ソフトウェア保守サービスの更新を求められる。 この保守サービスの更新、お値段は5990円(おそらく税抜き)。 アカウントページの、該当ライセンスを選択すると、期限切れの場合、保守サービス更新パッケージの購入欄が表示される。そこから、Toolboxなどを購入するときと同じように、クレジットカードを使ってオンライン購入できる。 購入後は、保守サービスを1年間延長され、以前と同じように使用できるようになるようだ。 以下のような複数年パックも見つけたが、手間が省けるというだけでお得になるわけではないようだ。 実は、以前から購入しようか迷っていたToolboxがあったのだが、うだうだしている間に上のような状態になってしまったのである。 もっと早く買っておけばよかったと後悔している。
8年前