MATLAB - MyEnigma

https://myenigma.hatenablog.com/archive/category/MATLAB

とある自律移動システムエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

フィード

記事のアイキャッチ画像
MATLABの凸最適化ライブラリCVXの使い方とサンプルコード
MATLAB - MyEnigma
Convex Optimization posted with カエレバ Stephen Boyd,Lieven Vandenberghe Cambridge University Press 2004-03-08 Amazonで探す 楽天市場で探す Yahooショッピングで探す 目次 目次 はじめに CVX: MATLAB Software for Disciplined Convex Programming インストール 1. ソフトをzipで落としてきて、解凍 2. CVXを起動する シンプルな凸最適化を解く 変数がベクトルの場合の凸最適化 参考資料 MyEnigma Supporters はじめに 先日、最適化技術の一つである凸最適化の基礎に関する 記事を書きましたが、 myenigma.hatenablog.com この凸最適化を実際に解くライブラリの中で最も有名なのが、 CVXというライブラリです。 CVX: Matlab Software for Disciplined Convex Programming | CVX Research, Inc. 今回はこのライブラリの概要と実際に凸最適化を解くための サンプルコードについて説明したいと思います。 CVX: MATLAB Software for Disciplined Convex Programming CVXはMATLAB上で動く凸最適化のためのモデリングツールです。 CVX: Matlab Software for Disciplined Convex Programming | CVX Research, Inc. このCVXを使えば、線形計画法(LPs)から、 myenigma.hatenablog.com 二次計画法(QPs)、 myenigma.hatenablog.com 二次凸関数問題(Second-order cone programs:SOCPS) Semidefinite Programs(SDPs) などの様々な最適化問題を解くことができます。 Stanford大学の凸最適化の有名な教授である、 Stephen P. Boyd氏が所属しているCVX Research Inc.という 企業が開発をしています。 About CVX Research, Inc....
8年前
記事のアイキャッチ画像
最小二乗法による点群の円フィッティングMATLAB&Pythonサンプルプログラム
MATLAB - MyEnigma
目次 目次 はじめに MATLABサンプルプログラム Pythonサンプルプログラム 参考資料 MyEnigma Supporters はじめに 下記の記事を参考にして、 冒頭の図のように、 点群情報を円フィッティングするMATLABサンプルプログラムと Pythonサンプルプログラムを作りました。 一般式による最小二乗法(円の最小二乗法) 画像処理ソリューション MATLABサンプルプログラム 円フィッティングするMATLAB関数は下記の通りです。 function [ cx, cy, r ] = CircleFitting(x,y) %CIRCLEFITTING 最小二乗法による円フィッテングをする関数 % input: x,y 円フィッティングする点群 % output cx 中心x座標 % cy 中心y座標 % r 半径 % 参考 % 一般式による最小二乗法(円の最小二乗法) 画像処理ソリューション % http://imagingsolution.blog107.fc2.com/blog-entry-16.html sumx=sum(x); sumy=sum(y); sumx2=sum(x.^2); sumy2=sum(y.^2); sumxy=sum(x.*y); F=[sumx2 sumxy sumx; sumxy sumy2 sumy; sumx sumy length(x)]; G=[-sum(x.^3+x.*y.^2); -sum(x.^2.*y+y.^3); -sum(x.^2+y.^2)]; T=F\G; cx=T(1)/-2; cy=T(2)/-2; r=sqrt(cx^2+cy^2-T(3)); end 関数の使い方は下記のテストコードを見るとわかると思います。 下記のプログラムを実行すると、 冒頭のフィッティンググラフが表示されるはずです。 clear all; close all; %推定する円情報 cx=4; cy=10; r=30; %円の点群の擬似情報 x=[-10:10]; y=cy+sqrt(r^2-(x-cx).^2); y=[y cy-sqrt(r^2-(x-cx).^2)]; x=[x x]; plot(x,y,'.r');hold on; %円フィッティング [cxe,cye,re]=...
9年前
記事のアイキャッチ画像
StaticsToolbox代わりの統計学用MATLABライブラリを作り始めた。
MATLAB - MyEnigma
統計学入門 (基礎統計学Ⅰ) posted with カエレバ 東京大学教養学部統計学教室 東京大学出版会 1991-07-09 Amazonで最安値を探す 楽天市場で最安値を探す Yahooショッピングで最安値を探す はじめに 正規分布の累積分布を計算しようと思ったら、 有料のStaticsToolboxにしか関数が無かったので、 自分で実装しました(笑) Statistics Toolbox Documentation - MathWorks 日本 必要になったら少しづつ追加していく予定です。 正規分布の確率密度関数 下記の関数と同じ動きをするはずです。 正規確率密度関数 - MATLAB normpdf - MathWorks 日本 function pdf=normpdf(x,mu,sigma) % 正規分布の確率密度関数PDFを計算する関数 % StaticsToolBoxのnormpdf関数と同じ機能にしたつもり % 参照: % 正規分布 - MATLAB & Simulink - MathWorks 日本 % http://jp.mathworks.com/help/stats/normal-distribution.html if nargin==1 mu=0; sigma=1; elseif nargin==2 sigma=1; end prefix=1/sqrt(2*pi)/sigma; pdf=prefix.*exp(-(x-mu).^2./(2*sigma^2)); 正規分布の累積分布関数 下記の関数と同じ動きをするはずです。 正規累積分布関数 - MATLAB normcdf - MathWorks 日本 function cdf=normcdf(x,mu,sigma) %正規累積分布関数CDFと計算する関数 %StatticsToolBoxのnormcdf関数と同じ機能にしたつもり %参照: %正規累積分布関数 - MATLAB normcdf - MathWorks 日本 %http://jp.mathworks.com/help/stats/normcdf.html if nargin==1 mu=0; sigma=1; elseif nargin==2 sigma=1; end cdf=[]; re...
9年前
記事のアイキャッチ画像
MATLABでユーザ定義型の配列・リストを使う方法
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す MATLABでユーザ定義型の配列・リストを使う方法 いつもC++やPythonでプログラミングをしている自分が、 MATLABでプログラミングをしようとした時に、 困ったことが一つありました。 それは、ユーザ定義型の配列・リスト型を使う方法が わからなかったということです。 C++でいうところのstd::vectorやstd::list Pythonでいうところのリスト型でしょうか。 異なるサイズの行列データをリストとして管理したい時に、 一行か一列データを増やしてリストのインデックスとしてもいいですが、 ちょっと複雑過ぎますね。 C++やPythonに慣れている自分では、 なんでこんなことが簡単に出来ないんだろうと思ってしまいました。 そこで色々調べた所、構造体配列というのを使うと良いことがわかりました。 構造体配列の作成 - MATLAB & Simulink - MathWorks 日本 この構造体配列を使うことにより、ユーザ定義型の配列を作ることができます。 下記のサンプルコードのように、丸括弧でインデックスを指定すると、 どんなデータでもリストとして格納することができます。 格納するデータは異なる型やサイズでもOKです。 clear all; close all; %代入するデータ a=[10 10 10] b=[2 3] c=[5] %リストとしてデータを保存 data(1).num=a; data(2).num=b; data(3).num=c; %データの表示 data(1) data(2) data(3) より一層MATLABが手放せなくなりました(笑)。 関連資料 myenigma.hatenablog.com myenigma.hatenablog.com myenigma.hatenablog.com 急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す...
9年前
記事のアイキャッチ画像
k-means法によるクラスタリングのためのMATLAB, Python, Juliaサンプルプログラム
MATLAB - MyEnigma
目次 目次 はじめに k-meansアルゴリズムについて MATLABサンプルプログラム Pythonサンプルコード Juliaサンプルコード 参考資料 MyEnigma Supporters はじめに ロボティクスにおいて、 データをいくつかのグループに分類する クラスタリングは重要な技術です。 例えば、移動物体の位置と速度などを レーザセンサやステレオカメラを使ってトラッキングしたい場合、 センサの観測値データをクラスタリングし、 移動物体から検出された観測点のみを抽出したくなります。 今回、クラスタリングのアルゴリズムの中でも最も基礎的な k-meansアルゴリズムを使ってクラスタリングを実施する MATLABとPythoのサンプルプログラムを作ってみました。 k-meansアルゴリズムについて k-meansアルゴリズムは、 各クラスタの平均値を使って、k個のクラスタに分けることから、 k-meansアルゴリズムと呼ばれているようです。 クラスタリングの方法としては 下記の順番で各データをラベリングします。 すべてのデータをランダムにラベリングする それぞれのラベル(クラスタ)の平均値を計算する 各クラスタの平均値と各データの距離を使って一番近いクラスタにラベルを更新する 各データのラベルが変わらなくなるまで、2-3を繰り返す。 です。 非常にシンプルですが、 冒頭の図のように、ちゃんとクラスタリングしてくれます。 k-means法ではクラスタの数は 事前に決定し、パラメータとして与えておく必要があります。 下記の図のように、2つのソースから生成されたデータにおいても、 クラスタ数を3とすることで、無理やり3つのクラスタに分けることもできます。 k-means法の詳細に関しては、 下記の資料を参照ください。 パターン認識と機械学習 上 パターン認識と機械学習 下 (ベイズ理論による統計的予測) MATLABサンプルプログラム 下記のGitHubのリポジトリにも置いてあります。 MATLABRobotics/kmeansSample.m at master · AtsushiSakai/MATLABRobotics % ---------------------------------------------------...
9年前
記事のアイキャッチ画像
ニュートン法による非線形最適化MATLAB&Pythonサンプルプログラム
MATLAB - MyEnigma
これなら分かる最適化数学: 基礎原理から計算手法まで 目次 目次 ニュートン法について MATLABサンプルプログラム Pythonサンプルコード 評価関数 ヤコビ行列 ヘッセ行列 関連資料 MyEnigma Supporters ニュートン法について ニュートン法は、最適化アルゴリズムの代表的な方法の一つです。 以前紹介した、最急降下法や共役勾配法よりも収束性が高く、 最適化を試みる際には、一番最初に候補に上がる方法です。 共役勾配法による非線形最適化MATLABサンプルプログラム - MY ENIGMA 最急降下法による非線形最適化MATLABサンプルプログラム - MY ENIGMA 最急降下法のようにモデルの一次微分情報(ヤコビ行列)だけでなく、 二次微分情報(ヘッセ行列)も利用して最適化を行うため、 高速な最適化が実現できます。 Newton法 更新式 しかし、モデルや評価関数が複雑な時には、 二次微分を求めることができないことも多いため、 その際には最急降下法や共役勾配法、 または、二次微分情報であるヘッセ行列を逐次推定する 準ニュートン法などが利用されるようです。 準ニュートン法 - Wikipedia MATLABサンプルプログラム % ------------------------------------------------------------------------- % % File : NewtonMethod.m % % Discription : Newton Method Method % % Environment : Matlab % % Author : Atsushi Sakai % % Copyright (c): 2014 Atsushi Sakai % % ------------------------------------------------------------------------- function [] = NewtonMethod() close all; clear all; disp('Optimization simulation with Newton method starts!!') %シミュレーション空間の最大最小範囲 maxxy=5; minxy=-5; ...
10年前
記事のアイキャッチ画像
共役勾配法による非線形最適化MATLAB&Pythonサンプルプログラム
MATLAB - MyEnigma
これなら分かる最適化数学: 基礎原理から計算手法まで 目次 目次 共役勾配法について 共役勾配法の更新則 MATLABサンプルプログラム Pythonサンプルコード 関連資料 MyEnigma Supporters 共役勾配法について 共役勾配法は、有名な最適化アルゴリズムの一つで、 最急降下法の勾配ベクトルを逐次補正することで、 最急降下法よりも少ない計算回数で、 非線形最適化を実現できるアルゴリズムです。 最急降下法による非線形最適化MATLABサンプルプログラム - MY ENIGMA 冒頭の最適化のシミュレーション結果を見ると分かる通り、 少ないイタレーション数で、 最適値を求めることができます。 目的関数がある条件を満たす場合(線形関数など)、 ある一定回数の最適化で最適化可能であることが 数学的に証明されています。 アルゴリズムの導出に関しては、 末尾の関連資料を参考にしていただきたいですが、 イメージ的には、 過去の勾配ベクトルの値を考慮した上で、 現在の勾配ベクトルを計算することで、 最急降下法の問題である、 ジグザグに最適化を実施してしまうという問題を 解決できることが多くなります。 ロボティクスの分野では、 ニューラルネットやSLAMなどの最適化にしばしば利用されているようです。 Subgraph-preconditioned Conjugate Gradients for Large Scale SLAM モデルが複雑で、ヘッセ行列までは計算できないが、 最急降下法よりも収束性を上げたい時に、 この共役勾配法が使用されています。 また、下記のwikiのページにある通り、 共役勾配法の勾配補正係数であるβの計算方法は複数あります。 Nonlinear conjugate gradient method - Wikipedia, the free encyclopedia 今回のMATLABシミュレーションでは、 なんとなくPolak–Ribièreを使いました。 (特別この方法がよかったわけではありません) 共役勾配法の更新則 共役勾配法の更新則は下記の通りです。 MATLABサンプルプログラム % --------------------------------------------------------------...
10年前
記事のアイキャッチ画像
最急降下法による非線形最適化MATLAB&Pythonサンプルプログラム
MATLAB - MyEnigma
これなら分かる最適化数学: 基礎原理から計算手法まで 目次 目次 最急降下法について 最急降下法の注意点 MATLABサンプルプログラム Pythonサンプルプログラム Armjio(アルミホ条件)とバックトラック法による学習パラメータ線形探索 シミュレーションで使用したコスト関数 参考資料 MyEnigma Supporters 最急降下法について 最急降下法は、関数の微分情報を使った非線形最適化の手法の中で 最もシンプルなものの一つです。 最急降下法 - Wikipedia 勾配方向にパラメータを更新することで、 最適化を実施します。 (ヤコビ行列に関しては、下記の記事を参考してもらえると良いと思います。 ロボティクスにおける線形代数 - MY ENIGMA) パラメータの更新式は下記の通りです。 ちなみにαは学習パラメータと呼ばれ、 良く使用される方法としては、 事前に決めた一意のパラメータを利用するか、 黄金分割法や、後述のアルミホ条件によるバックトラック法の直線探索法を使って 最適なαを逐次決定します。 myenigma.hatenablog.com 最急降下法の注意点 通常の場合、 最急降下法で最適化解を得ることができますが、 下記のグラフのように、 ある方向では極小値だが、 ある方向では極大値である いわゆる鞍点(あんてん)の場合、 この点に収束してしまう可能性があります。 この鞍点に収束しているかどうかを 確認する場合は、 この点におけるヘッセ行列が正定か準正定かどうかを、 確認すればOKです。 ちなみに、正定かどうかの確認は、 ヘッセ行列Hの固有値がすべて正か、 または、下記の二次形式の式がすべてのxにおいて、 正であることが条件になります。 MATLABサンプルプログラム % ------------------------------------------------------------------------- % % File : SteepestDescentMethod.m % % Discription : Non-Linear optimizion with Steepest Descent Method % % Environment : Matlab % % Author : Atsushi Sa...
10年前
記事のアイキャッチ画像
Nelder-Mead法(シンプレックス法)による非線形最適化Pythonサンプルプログラム
MATLAB - MyEnigma
これなら分かる最適化数学―基礎原理から計算手法まで posted with カエレバ 金谷 健一 共立出版 2005-09-01 Amazonで探す 楽天市場で探す Yahooショッピングで探す 目次 目次 Nelder-Mead法 Nelder-Mead法の特徴 Nelder-Mead法の計算プロセス 0: シンプレックスの初期化 1: 重心計算 2: Reflection (反射) 3: Expansion (膨張) 4: Contraction (収縮) 5: Shrink (全収縮) Pythonサンプルコード 参考資料 MyEnigma Supporters Nelder-Mead法 Nelder-Mead法は、非線形最適化法の一種です。 シンプレックス法やアメーバ法とも呼ばれます。 このNelder-Mead法は、多角形の探索領域を 広げたり、縮小したり、移動させることにより、 多次元非線形関数の最小値を探索します。 Nelder-Mead法の特徴 一般的な非線形最適化手法は、 目的関数の微分情報を使用しますが、 目的関数が不明な時や、 目的関数が複雑すぎて微分出来ない時などには使えません。 このNelder-Mead法はそのような微分情報が無くても 非線形最適化を実施することができます。 一方で、 微分情報を使わないため、 収束計算に時間がかかってしまう時がある という問題があります。 Nelder-Mead法の計算プロセス 0: シンプレックスの初期化 コスト関数の引数の次元をNとしたときに、 N+1個のシンプレックス(アメーバの頂点)を生成します。 冒頭の画像のような2次元(x-y)入力の場合は、 三角形のシンプレックスで最適値を探索します。 シンプレックスの点は、探索範囲の中でランダムに生成するか、 事前に最適値の範囲がわかっている場合は、 その周囲にサンプリングすることが多いようです。 このあとは1-5を繰り返し計算します。 1: 重心計算 最もコスト関数が悪い頂点Xw以外の、シンプレックスの重心を計算する。 この最もコスト関数が悪い点を、 これ以降のプロセスで移動させて最適化を実施します。 2: Reflection (反射) Xwを重心を元に、反転させます。 その反転された点のコストが、最高でもなく最低でもない場合は、 反...
10年前
記事のアイキャッチ画像
Model Based Development:MBD(モデルベース開発)とは?
MATLAB - MyEnigma
実習で学ぶ モデルベース開発- 『モデル』を共通言語とするV字開発プロセス - posted with カエレバ 山本 透,脇谷 伸,原田 靖裕,香川 直己,足立 智彦,沖 俊任,原田 真悟 コロナ社 2018-05-16 Amazonで探す 楽天市場で探す Yahooショッピングで探す 目次 目次 はじめに MBDとは、 MBDの何がいいのか? 1. 仕様書の明確化と再利用性の向上 2. シミュレーションをしながら仕様を決定できる(MILS) 3. 仕様書から自動でコードが生成されるために、バグが入りにくい 4. PlantとControllerを同時に開発できる。 参考資料 MyEnigma Supporters はじめに MATLABを使用していると、 Simulinkというソフトが付いてきて、 そのソフトを上手く使うと Model Based Development:MBDという開発手法で 効率的に製品を作ることができるという話をよく聞きます。 ロボットを専門にしていると、 MATLABは便利なグラフ&動画作成ツールとして 使ってしまいがちですが、 自動車業界の友人に話を聞くと、 MATLAB=MBDツールといった認識のようです。 これまでMBDという名前は知っていましたが、 その内容はよくわかっていなかったので、 簡単に調べてみました。 MBDとは、 MBDとは、 『CAEツールを使って制御対象と制御装置をモデル化する制御システム開発手法』 のことです。 ここでCAEツールの代表として挙げられるのがMATLAB/Simulinkです。 制御対象(車だとエンジンとか、ワイパーとか)と、 制御装置(コントローラー、コンピュータ)を、 モデルという、コンピュータ上での共通表現で、記述し、 それらを用いて制御システムを開発します。 共通表現で記述されたモデルは、 CAEツール上でそのままシミュレーションが出来る状態になり、 随時シミュレーションを実施しながら、 試作を行う前に開発検討を行うことができます。 完成したモデルはそのまま仕様書となります。 (仕様書という書き方だとわかりにくいですが、 システムのあるべき姿を表したものを仕様書と言っています) そして、完成したモデルは、再びCAEツールによって、 自動コード生成され、 実際のコントローラに...
10年前
記事のアイキャッチ画像
EKF SLAMのためのMATLAB, Pythonサンプルプログラム
MATLAB - MyEnigma
確率ロボティクス (プレミアムブックス版) 目次 目次 はじめに EKFによるSLAMについて MATLABサンプルプログラム Pythonサンプルプログラム 参考資料 MyEnigma Supporters はじめに 先日、拡張カルマンフィルタ(EKF)による 自己位置推定のサンプルコードを公開しましたが、 d.hatena.ne.jp このアルゴリズムを拡張すると、 簡単に特徴ベースのSimultaneous Localization And Mapping (SLAM) を実現することができます。 今回はこのEKFを使用したSLAMの 簡単なMATLAB, Pythonサンプルプログラムを公開したいと思います。 EKFによるSLAMについて EKFで特徴ベースのSLAMを実現する際には、 状態ベクトルを拡張して、 ロボットの姿勢と特徴(ランドマーク)の座標値を 推定する必要があります。 ロボットの姿勢をx,y,θ、 ランドマークの座標をx_i,y_iとすると、 EKF SLAMの状態のベクトルは下記のようになります。 単純な自己位置推定の場合は、 ロボットの姿勢の3次元のみでしたが、 SLAMになると、各ランドマークの座標値が入るので、 ベクトルの大きさは非常に大きくなります。 EKFの性質上、 状態ベクトルの大きさの二乗で 計算コストが増大するため、 最新のPCを使用した場合でも、 扱えるランドマークの数は 最大でも数千個が限界のようです。 また、SLAMを利用する際には 事前にランドマークの数は わからないことが多いため、 状態ベクトルやその共分散行列の大きさは 動的に変化(増大)することになり、 プログラムとして実装することは、多少困難が伴います。 また、状態ベクトルが拡張されることにより、 運動モデルと観測モデルのヤコビ行列の導出も 若干複雑になります。 以上のように、 EKFをSLAMで利用する場合には、 状態ベクトルの拡張が必要ですが、 それ以外の共分散行列の更新や、 カルマンゲインの計算などは、 通常の自己位置推定の場合の時と変わらないため、 自己位置推定でEKFを使用している人にとっては 親しみやすいアルゴリズムであると言えます。 実際にこのEKF SLAMは潜水艇の位置計測などにも 使用されているようです。 EKF S...
10年前
記事のアイキャッチ画像
自律移動ロボットのためのグリッドマップ作成MATLAB, Pythonサンプルプログラム
MATLAB - MyEnigma
目次 目次 はじめに グリッドマップのデータ表現方法 Grid Mapシミュレーション1: End Point Update 1. 観測点をグローバル座標系に変換する 2. グローバル座標系の観測点の位置をグリッドマップ座標系に変換する 3. x-y方向それぞれのグリッドインデックスを計算する 4. 一次元配列のデータ配列のインデックスを計算する 5. 一次元配列のデータの更新 Grid Mapシミュレーション2: Gaussian Likelihood Update Grid Mapシミュレーション3: Ray Casting Update 時系列データによる占有度の計算 Grid Mapに格納するデータ Grid Mapを利用する利点 1. グリッド探索の計算コストが、グリッドマップのサイズにほどんど関係ない 2. コンピュータに実装しやすい 3. パスプランニングに利用しやすい 4. 画像処理の技術を利用できる MATLABサンプルコード Pythonサンプルコード グリッドマップに関して、より詳しく学びたい方は その他自律移動技術を学びたい方は 参考資料 MyEnigma Supporters はじめに 自律移動ロボットにとって、 空間を格子状に区切った 格子地図(Grid Map)は、 非常に重要な地図構築技術です。 一般的なパスプランニングアルゴリズムである、 ダイクストラ法やA*は、 Grid Mapで作成した地図であれば、 そのまま応用可能です。 また、地図と自己位置を同時に推定する Simultaneous Localization And Mapping:SLAMにおいて、 (SLAM技術に関しては下記を参照下さい myenigma.hatenablog.com myenigma.hatenablog.com) 地図として、Grid Mapがよく使用されます。 しかし、自分はこれまで Grid Mapを使用した論文を 色々読んできましたが、 実際にグリッドマップを使用する時の データの取り扱いや探索方法を わかりやすく説明した資料には 出会うことができませんでした。 仕方が無いので、自分はこれまで、 グリッドマップを使用した オープンソースのコードをなどを見て、 コツコツとグリッドマップの使い方を勉強してきたのですが、 最近やっと、実際...
10年前
記事のアイキャッチ画像
EMアルゴリズムによる確率分布学習のMATLABプログラム
MATLAB - MyEnigma
パターン認識と機械学習 上 posted with カエレバ C.M. ビショップ 丸善出版 2012-04-05 Amazonで探す 楽天市場で探す Yahooショッピングで探す 目次 目次 はじめに EMアルゴリズム MATLABサンプルコード PythonによるEMアルゴリズムのサンプルプログラム 参考資料 MyEnigma Supporters はじめに ロボティクスにおいて、 あるデータを複数の確率分布で近似して、 それらのパラメータを推定したい時があります。 例えば、『確率ロボティクス』における 確率ロボティクス (Mynavi Advanced Library) 作者: Sebastian Thrun,Wolfram Burgard,Dieter Fox 出版社/メーカー: マイナビ出版 発売日: 2015/04/02 メディア: Kindle版 この商品を含むブログを見る レーザレンジファインダのビームモデルは、 一本のビームの観測値を4つの確率分布の 足しあわせによって表現して、観測尤度を計算します。 もしこのビームモデルを使って、 観測尤度を計算したい場合、 それぞれの確率分布のパラメータや、 それぞれの確率分布の重み行列を、 それぞれのセンサに合わせてチューニングする必要があります。 また、名著 PRMLにもある通り、 パターン認識と機械学習 上 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松本裕治,村田昇 出版社/メーカー: 丸善出版 発売日: 2012/04/05 メディア: 単行本(ソフトカバー) 購入: 6人 クリック: 33回 この商品を含むブログ (20件) を見る パターン認識と機械学習 下 (ベイズ理論による統計的予測) 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松本裕治,村田昇 出版社/メーカー: 丸善出版 発売日: 2012/02/29 メディア: 単行本 購入: 6人 クリック: 14回 この商品を含むブログを見る ある観測データの中から、 それぞれの物体からの観測値を クラスタリングをしたい時など、 複数の正規分布でデータを近似し、 そのパラメータを推定したい時があります。 混合モデルとEMアルゴリズム(PRML第9章) 以上のような、...
10年前
記事のアイキャッチ画像
Dynamic Window Approachを利用したMotion planningのMATLAB, Python サンプルプログラム
MATLAB - MyEnigma
目次 目次 はじめに Dynamic Window Approachとは、 1. Dynamic WIndowの計算 2. 評価関数の最適化 DWAの利点と欠点 利点 欠点 DWAのMATLABサンプルプログラム Pythonサンプルプログラム その他のロボティクスアルゴリズムのサンプルコード 参考資料 MyEnigma Supporters はじめに 以前、自律移動ロボットのPath Planningアルゴリズムとして、 ダイクストラ法や myenigma.hatenablog.com A*アルゴリズム myenigma.hatenablog.com を紹介しましたが、これらのアルゴリズムは一般的に、 Global Path Planinngというアルゴリズムに分類されます。 このGlobal Path Planningは、 スタート地点からゴールまでのパスを計算する方法ですが、 いくつか問題点があります。 一つ目は、 ロボットのダイナミクス(運動モデル)を考慮していないということです。 標準的なA*アルゴリズムでは、現在のロボットの速度や運動モデルは考慮せず、 単純に隣接グリッド間の移動が最小になるようなパスを計算します。 しかし実際には、ステアリング型のロボットなど、 横方法に簡単に旋回できないロボットの場合、 安全が担保されたパスを生成したにも関わらず、 そのパスに追従できずに、障害物に衝突してしまうということが発生します。 二つ目は、計算コストが大きいということです。 パスを引くスタート地点とゴール地点が遠い場合、 グリッドの解像度にもよりますが、計算コストは莫大になります。 従って、毎回の制御ループ時に パスを再計算(Replanning)をすることが難しいという問題があります。 これは移動物体などが存在する動的環境での自律移動の際に、 非常に大きな問題になります。 Replanningが間に合わないままのパスで走行すると、 動的物体を考慮しないまま走行してしまうので、 最悪の場合、動的物体に衝突してしまうのです。 以上のようなGlobal Path Planningの問題を解決する方法が Local Path Planningと呼ばれるアルゴリズムです。 Local Path Planningは、ロボットのダイナミクスを考慮した上で、 比較的近い距離ま...
10年前
記事のアイキャッチ画像
ICPアルゴリズムを利用したSLAM用Python、MATLABサンプルプログラム
MATLAB - MyEnigma
確率ロボティクス (プレミアムブックス版) posted with カエレバ Sebastian Thrun,Wolfram Burgard,Dieter Fox マイナビ出版 2016-09-21 Amazonで探す 楽天市場で探す Yahooショッピングで探す 目次 目次 はじめに 特異値分解(SVD)を用いたICP サンプルMATLABコード Pythonサンプルコード 参考資料 MyEnigma Supporters はじめに Iterative Closest Point: ICPアルゴリズムは、 レーザやステレオカメラなどて取得した点群データ(Point Cloud) の二セット分のデータを使用して、 それらの点群が一番マッチングする位置 を計算するアルゴリズムです。 もう少し詳しく言うと、 片方の点群をもう片方の点群に最もフィットするために、 片方の点群をどれだけ移動すればよいかを 計算します。 このICPは、ある物体を複数の方向から観測(撮影)して、 その物体の形状を復元する 『Structure From Motion』という手法に利用されたり、 (下図はStructure From Motionによる建物の復元) ロボットに搭載されているレーザの観測点を 2つの時間でマッチングさせ、 その移動量を計算することで、 Wheel Odometryの代わりに使ったりすることが多いです。 差動二輪型ロボットのWheel Odometryによる自己位置推定プログラム - MY ENIGMA 今回は、このICPアルゴリズムのMATLABと Pythonのサンプルコードを作成したので、 公開したいと思います。 特異値分解(SVD)を用いたICP 下記の参考文献のFreiburg大学の資料にある通り、 点と点の対応が既知の場合は、 ICPアルゴリズムは非常に単純に実装できます。 それが、特異値分解(Singular Value Decomposition:SVD)を利用したものです。 特異値分解は、ある行列を特別な行列に分解する線形代数の方法の一つですが、 ロボティクスにおける線形代数 - MY ENIGMA この特異値分解を使用すると、簡単に各スキャン点のノルム誤差を最小にするような 移動量(並進ベクトルt,と回転行列R)を計算できます. ...
10年前
記事のアイキャッチ画像
Unscentedカルマンフィルタを使用した自己位置推定MATLAB, Pythonサンプルプログラム
MATLAB - MyEnigma
はじめに 以前、自律ロボットにおける 拡張カルマンフィルタを使用した自己位置推定の MATLAB, Pythonサンプルプログラムを公開しました。 myenigma.hatenablog.com 今回は同じくカルマンフィルタの一種である Unscented Kalman Filter (UKF) (シグマポイントカルマンフィルタとも呼ばれます) のMATLABとPythonのサンプルプログラムを公開したいと思います。 UKFのアルゴリズムの詳しい導出は、 下記のwikiか カルマンフィルター - Wikipedia 下記の文献を参考にしてください。 確率ロボティクス (プレミアムブックス版) posted with カエレバ Sebastian Thrun,Wolfram Burgard,Dieter Fox マイナビ出版 2016-09-21 Amazonで探す 楽天市場で探す Yahooショッピングで探す MATLABサンプルコード 下記がMATLABサンプルコードです。 % ------------------------------------------------------------------------- % % File : Unscented KalmanFilterLocalization.m % % Discription : Mobible robot localization sample code with % Unscented Kalman Filter (UKF) % % Environment : Matlab % % Author : Atsushi Sakai % % Copyright (c): 2014 Atsushi Sakai % % License : Modified BSD Software License Agreement % ------------------------------------------------------------------------- function [] = UnscentedKalmanFilterLocalization() close all; clear all; disp('Unscented Kalman Filter (...
10年前
記事のアイキャッチ画像
MATLABよる経路平滑化(Path Smoothing)プログラム
MATLAB - MyEnigma
未来を切り拓くための5ステップ: 起業を目指す君たちへ posted with カエレバ 加藤 崇 新潮社 2014-04-18 Amazonで探す 楽天市場で探す Yahooショッピングで探す 何故、経路平滑化が必要なのか? 先日紹介したダイクストラ法やA*を使用すれば、 スタート地点からゴールまでの最短経路を計算することができます。 ダイクストラ法による最短経路探索MATLABプログラム - MY ENIGMA A*による最短経路探索MATLABプログラム - MY ENIGMA しかし、上記の記事を見るとわかるとおり、 これらのアルゴリズムで生成された経路は、 最短経路を出力しているだけなので、 経路がカクカクしています。 ロボットによっては、 このようなパスを追従することは難しいという問題があります。 (例えば、ステアリング駆動のロボットの場合、 滑らかなコースしか走行することが難しいです) そこで、このようなパスを平滑化(Smoothing)する技術が重要になります。 入力された経路を滑らかに修正するアルゴリズムです。 今回はこの経路平滑化(Path Smoothing)の技術の一例を 紹介し、そのMATLABサンプルコードを公開したいと思います。 経路平滑化アルゴリズム では、経路平準化アルゴリズムの中で 最もシンプルなアルゴリズムの一つを紹介したいと思います。 まず初めに、平準化前のパスの座標値を とし、平準化後のパスの座標値を とします。 ここでiはパスの座標値のインデックスです。 ここで、パスの最初と最後の座標値を固定した状態で、 パスを平準化するためには、 平準化後のパスの各座標値間の各距離が小さくなれば、 パスは平準化されると考えます。 つまり、 座標P_iとその前後の座標P_i-1, P_i+1との距離を考えると、 となれば良いということです。 しかし、この評価式通り最適化を実施すると、 平滑化前のパスの始点と終点を繋いだ 下記のようなパスにになってしまいます。 座標間の各距離を最小になるようにすると 直線になるのは当然ですね。 続いて、このように考えます。 先ほどの評価式をできるだけ満たしながらも、 平滑化前のパスからできるだけ離れないパスが、 平準化されたパスではないかと。 つまり、αとβを定数とすると ...
10年前
記事のアイキャッチ画像
A*による最短経路探索MATLAB, Pythonプログラム
MATLAB - MyEnigma
目次 目次 はじめに A*アルゴリズムとは、 A*よる経路探索アルゴリズムの流れ 1. ゴールノード(G )とスタートノード(S )を作成する。 2. スタートノードをOpenリストに追加する. 3. Openリストが空なら探索は失敗とする 4. Openリストに格納されているノードの中で最もf*(n) が小さいノードnを選択する。 5. n = G であるなら探索を終了する。それ以外の場合は n を Close リストに移す。 6. n に隣接している全てのノード(ここでは隣接ノードを m とおく) 7. 3-6 以降を繰り返す。 8. 探索終了後 G から親を順次たどっていくと S から G までの最短経路が得られる。 運動モデルにおけるコスト設定による複雑な経路探索 MATLAB プログラム Pythonサンプルプログラム 参考資料 MyEnigma Supporters はじめに 先日、ダイクストラ法による最短経路探索の MATLABプログラムを公開しましたが、 ダイクストラ法による最短経路探索MATLABプログラム - MY ENIGMA 今回は、このダイクストラ法を改良した A* (エースター)というアルゴリズムによる 最短経路探索MATLAB, Pythonプログラムを公開したいと思います。 A*アルゴリズムとは、 A*アルゴリズムは、 ダイクストラ法のノード探索の方法を 改良したアルゴリズムです。 ダイクストラ法は 隣接するノードを順番に探索するアルゴリズムですので、 スタート地点とゴール地点が遠いと、 探索するノードの数が膨大になり、 計算コストが非常に大きくなるという問題がありました。 A*アルゴリズムは、 ヒューリスティック関数という関数を使用し、 最短経路らしいノードのみを探索します。 ヒューリスティック関数と言われると 難しそうに感じますが、 グリッドマップにおける最短経路探索では、 ヒューリスティック関数として、 "そのノードとゴールまでの距離" を使用することが多いです。 このヒューリスティック関数を利用することにより、 ゴールが存在する方向のノードが優先的に探索されるようになり、 無駄なノードの探索を減少させることができます。 また、このヒューリスティック関数の値(推定コスト)が、 実際のコストを下回る場合は、 このA*アル...
10年前
記事のアイキャッチ画像
ダイクストラ法による最短経路探索MATLAB, Pythonプログラム
MATLAB - MyEnigma
Robot Motion Planning (The Springer International Series in Engineering and Computer Science) posted with カエレバ Jean-Claude Latombe Kluwer Academic 1991-08-31 Amazonで探す 楽天市場で探す Yahooショッピングで探す 目次 目次 はじめに ダイクストラ法とは? ダイクストラ法による経路探索アルゴリズムの流れ 運動モデルにおけるコスト設定による複雑な経路探索 ダイクストラ法によるDynamic Programming(動的計画法) MATLABプログラムについて Pythonプログラム 参考資料 MyEnigma Supporters はじめに ロボットの自律移動技術の中で重要な技術の一つに 「経路探索(Path Planning)」がありますが、 今回、その中でも最も基本的な ダイクストラ法を用いたGrid Map内での 最短経路探索MATLABプログラムを作成したので、 紹介したいと思います。 ダイクストラ法とは? ダイクストラ法は、 グラフ理論における最短経路探索アルゴリズムの中で 最も古典的な物の一つです。 1959年にエドガーダイクストラによって開発されたものですが、 未だにカーナビの経路探索や、 インターネットのルーティングプログラムに使用されています。 ダイクストラ法の詳細に関しては、 下記のwikiの記事を参照してもらった方が良いと思いますが、 ダイクストラ法 - Wikipedia 簡単に言うと、 "スタート地点から徐々に探索するノードを拡大させていきながら、 各ノードにおける最小コストを更新していき、 ゴールに着いた時にその最小コストを実現するようなパスを選択する" アルゴリズムです。 ここにおけるコストは、それぞれの目的によって変わりますが、 例えばある場所までの距離や時間をコストとすることにより、 ダイクストラ法によって、 最も効率的な経路を計算することができるようになります。 ロボットにおける自律移動では、 周辺環境の認識方法として、 周囲の環境を格子状に区切る地図(グリッドマップ) を使用して、どこが走行可能なのかを判断することが多いです。 なので、この地図を...
10年前
記事のアイキャッチ画像
社会人が激安で最新のMATLABを手に入れる方法
MATLAB - MyEnigma
MATLAB and Simulink Student Suite R2018a posted with カエレバ MathWorks Amazonで探す 楽天市場で探す Yahooショッピングで探す 目次 目次 はじめに 1. MATLAB購入のページに移動する 2. MathWorksのアカウント作成 or ログイン 3. 使用場所の入力と請求先の入力 4. ソフトのDLとインストール MacのOSをYosemiteにアップデートした時に、MATLABが起動出来なくなった時の対処法 1. MATLABのエイリアスを手動で作成する。 2. MathWorksが配布しているパッチをあてる。 学生用MATLAB パッケージ 参考資料 MyEnigma Supporters はじめに MATLABは素晴らしいプログラミング言語であり、 素晴らしいソフトウェア開発環境だと思います。 ただ一番問題なのは、「値段が高い」ということです。 学生の時は2万円ほどで購入できましたが、 MATLAB student version を買った. - MY ENIGMA 社会人になると、ビジネスライセンスで20万円ほどするため、 気軽に購入できません。 しかし、 趣味で簡単なシミュレーションなどをしたい時には、 個人PCにMATLABが入っていたらなーと思うことがあります。 そんな時、下記のTweetを発見しました。 何という事でしょう!Toolboxは各4500円じゃないですか ( ゚д゚)ポカーンURL @AntiBayesian MATLABのhomeライセンスが14,950円URL … 2014-04-19 02:10:24 via web to @AntiBayesian アカデミックでもなく、 ビジネスでもなく 個人用途のホームライセンスが 激安の15000円で売られていたのです!!! (学生時代のStudentライセンスより安い。。。。 ちなみに現在ではStudentライセンスも5000円に値下げされています) 早速、ポチってインストールしてみたので その方法をメモとして残して起きます。 1. MATLAB購入のページに移動する MATLAB and Simulink Pricing and Licensing Overview -...
10年前
記事のアイキャッチ画像
MATLABのコードを高速化する方法
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す 目次 目次 はじめに 1.配列の事前割当て 2.プログラムの複雑性の緩和 3.異なる型の変数への代入 4.ループではなく,行列演算を使用する. 5.出来るだけMATLABネイティブの関数を使う. 6.できるだけ関数化する 7.できるだけバックプロセスを減らす. 参考資料 MyEnigma Supporters はじめに MATLABで作成したコードは遅いことで有名です. しかし, MATLAB特有の問題を認識して, その問題を解決するようなコーディングをすることで, MATLABのコードは驚くほど高速化します. 今回は下記の記事を元に, MATLABのコードを高速化する方法を紹介します. ・MathWorks 日本 - パフォーマンスを向上させる方法 - MATLAB & Simulink ・MathWorks - Techniques for Improving Performance - MATLAB & Simulink 1.配列の事前割当て ループ毎に配列の大きさを変更するのは, MATLABのコードでは常套手段ですが, 実は,これはかなりコードの実行速度を低下させます. もし配列の大きさを事前に決定できるのであれば, 事前に配列を割り当てましょう. ex) x = []; for k = 1:1000 x = [x k]; end ・良い例 x = zeros(1, 1000); for k = 1:1000 x(k) = k; end 配列の事前割当てに便利な関数 ・"ones":MathWorks 日本 - すべての要素が 1 の配列の作成 - MATLAB ・"zeros"MathWorks 日本 - すべての要素が 0 の配列の作成 - MATLAB ・MathWorks 日本 - セル配列を作成 - MATLAB 2.プログラムの複雑性の緩和 MATLABのスクリプトの場合, if-else文が多くなりすぎると計算コストが大きくなるようです. なので,そんな時はそれぞれのコードを分割し, できるだけソ...
12年前
記事のアイキャッチ画像
MATLAB Programming Style Guidelines 0: About This Document
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す この記事は, Datatool社のRichard Johnson氏が書いた "MATLAB Programming Style Guideline" を自分なりに翻訳したものです. この文書は MATLABのコードをより素晴らしいものにするための 多数のコーディング作法について書かれています. 翻訳結果は以下の各リンクから読むことができます. 0. MATLAB Programming Style Guidelines : About This Document - MY ENIGMA 1. MATLAB Programming Style Guidelines : Introduction - MY ENIGMA 2. MATLAB Programming Style Guidelines : Naming Conventions - MY ENIGMA 3. MATLAB Programming Style Guidelines : Constants and Structures - MY ENIGMA 4. MATLAB Programming Style Guidelines : Functions - MY ENIGMA 5. MATLAB Programming Style Guidelines : General - MY ENIGMA 6. MATLAB Programming Style Guidelines : Files and Organization - MY ENIGMA 7. MATLAB Programming Style Guidelines : Statements - MY ENIGMA 8. MATLAB Programming Style Guidelines : Layout, Comments and Documentation - MY ENIGMA もし,これらの文章に意見や質問,誤謬などがあれば, それぞれの記事にコメントしてもらえると幸いです. また,今回の一連の文章は リ...
13年前
記事のアイキャッチ画像
MATLAB Programming Style Guidelines 8: Layout, Comments and Documentation
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す この記事は, Datatool社のRichard Johnson氏が書いた "MATLAB Programming Style Guideline" を自分なりに翻訳したものです. この文書は MATLABのコードをより素晴らしいものにするための 多数のコーディング作法について書かれています. 翻訳結果は以下の各リンクから読むことができます. 0. MATLAB Programming Style Guidelines : About This Document - MY ENIGMA 1. MATLAB Programming Style Guidelines : Introduction - MY ENIGMA 2. MATLAB Programming Style Guidelines : Naming Conventions - MY ENIGMA 3. MATLAB Programming Style Guidelines : Constants and Structures - MY ENIGMA 4. MATLAB Programming Style Guidelines : Functions - MY ENIGMA 5. MATLAB Programming Style Guidelines : General - MY ENIGMA 6. MATLAB Programming Style Guidelines : Files and Organization - MY ENIGMA 7. MATLAB Programming Style Guidelines : Statements - MY ENIGMA 8. MATLAB Programming Style Guidelines : Layout, Comments and Documentation - MY ENIGMA もし,これらの文章に意見や質問,誤謬などがあれば, それぞれの記事にコメントしてもらえると幸いです. また,今回の一連の文章...
13年前
記事のアイキャッチ画像
MATLAB Programming Style Guidelines 7: Statements
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す この記事は, Datatool社のRichard Johnson氏が書いた "MATLAB Programming Style Guideline" を自分なりに翻訳したものです. この文書は MATLABのコードをより素晴らしいものにするための 多数のコーディング作法について書かれています. 翻訳結果は以下の各リンクから読むことができます. 0. MATLAB Programming Style Guidelines : About This Document - MY ENIGMA 1. MATLAB Programming Style Guidelines : Introduction - MY ENIGMA 2. MATLAB Programming Style Guidelines : Naming Conventions - MY ENIGMA 3. MATLAB Programming Style Guidelines : Constants and Structures - MY ENIGMA 4. MATLAB Programming Style Guidelines : Functions - MY ENIGMA 5. MATLAB Programming Style Guidelines : General - MY ENIGMA 6. MATLAB Programming Style Guidelines : Files and Organization - MY ENIGMA 7. MATLAB Programming Style Guidelines : Statements - MY ENIGMA 8. MATLAB Programming Style Guidelines : Layout, Comments and Documentation - MY ENIGMA もし,これらの文章に意見や質問,誤謬などがあれば, それぞれの記事にコメントしてもらえると幸いです. また,今回の一連の文章は...
13年前
記事のアイキャッチ画像
MATLAB Programming Style Guidelines 6: Files and Organization
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す この記事は, Datatool社のRichard Johnson氏が書いた "MATLAB Programming Style Guideline" を自分なりに翻訳したものです. この文書は MATLABのコードをより素晴らしいものにするための 多数のコーディング作法について書かれています. 翻訳結果は以下の各リンクから読むことができます. 0. MATLAB Programming Style Guidelines : About This Document - MY ENIGMA 1. MATLAB Programming Style Guidelines : Introduction - MY ENIGMA 2. MATLAB Programming Style Guidelines : Naming Conventions - MY ENIGMA 3. MATLAB Programming Style Guidelines : Constants and Structures - MY ENIGMA 4. MATLAB Programming Style Guidelines : Functions - MY ENIGMA 5. MATLAB Programming Style Guidelines : General - MY ENIGMA 6. MATLAB Programming Style Guidelines : Files and Organization - MY ENIGMA 7. MATLAB Programming Style Guidelines : Statements - MY ENIGMA 8. MATLAB Programming Style Guidelines : Layout, Comments and Documentation - MY ENIGMA もし,これらの文章に意見や質問,誤謬などがあれば, それぞれの記事にコメントしてもらえると幸いです. また,今回の一連の文章は...
13年前
記事のアイキャッチ画像
MATLAB Programming Style Guidelines 5: General
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す この記事は, Datatool社のRichard Johnson氏が書いた "MATLAB Programming Style Guideline" を自分なりに翻訳したものです. この文書は MATLABのコードをより素晴らしいものにするための 多数のコーディング作法について書かれています. 翻訳結果は以下の各リンクから読むことができます. 0. MATLAB Programming Style Guidelines : About This Document - MY ENIGMA 1. MATLAB Programming Style Guidelines : Introduction - MY ENIGMA 2. MATLAB Programming Style Guidelines : Naming Conventions - MY ENIGMA 3. MATLAB Programming Style Guidelines : Constants and Structures - MY ENIGMA 4. MATLAB Programming Style Guidelines : Functions - MY ENIGMA 5. MATLAB Programming Style Guidelines : General - MY ENIGMA 6. MATLAB Programming Style Guidelines : Files and Organization - MY ENIGMA 7. MATLAB Programming Style Guidelines : Statements - MY ENIGMA 8. MATLAB Programming Style Guidelines : Layout, Comments and Documentation - MY ENIGMA もし,これらの文章に意見や質問,誤謬などがあれば, それぞれの記事にコメントしてもらえると幸いです. また,今回の一連の文章は...
13年前
記事のアイキャッチ画像
MATLAB Programming Style Guidelines 4: Functions
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す この記事は, Datatool社のRichard Johnson氏が書いた "MATLAB Programming Style Guideline" を自分なりに翻訳したものです. この文書は MATLABのコードをより素晴らしいものにするための 多数のコーディング作法について書かれています. 翻訳結果は以下の各リンクから読むことができます. 0. MATLAB Programming Style Guidelines : About This Document - MY ENIGMA 1. MATLAB Programming Style Guidelines : Introduction - MY ENIGMA 2. MATLAB Programming Style Guidelines : Naming Conventions - MY ENIGMA 3. MATLAB Programming Style Guidelines : Constants and Structures - MY ENIGMA 4. MATLAB Programming Style Guidelines : Functions - MY ENIGMA 5. MATLAB Programming Style Guidelines : General - MY ENIGMA 6. MATLAB Programming Style Guidelines : Files and Organization - MY ENIGMA 7. MATLAB Programming Style Guidelines : Statements - MY ENIGMA 8. MATLAB Programming Style Guidelines : Layout, Comments and Documentation - MY ENIGMA もし,これらの文章に意見や質問,誤謬などがあれば, それぞれの記事にコメントしてもらえると幸いです. また,今回の一連の文章は...
13年前
記事のアイキャッチ画像
MATLAB Programming Style Guidelines 3: Constants and Structures
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す この記事は, Datatool社のRichard Johnson氏が書いた "MATLAB Programming Style Guideline" を自分なりに翻訳したものです. この文書は MATLABのコードをより素晴らしいものにするための 多数のコーディング作法について書かれています. 翻訳結果は以下の各リンクから読むことができます. 0. MATLAB Programming Style Guidelines : About This Document - MY ENIGMA 1. MATLAB Programming Style Guidelines : Introduction - MY ENIGMA 2. MATLAB Programming Style Guidelines : Naming Conventions - MY ENIGMA 3. MATLAB Programming Style Guidelines : Constants and Structures - MY ENIGMA 4. MATLAB Programming Style Guidelines : Functions - MY ENIGMA 5. MATLAB Programming Style Guidelines : General - MY ENIGMA 6. MATLAB Programming Style Guidelines : Files and Organization - MY ENIGMA 7. MATLAB Programming Style Guidelines : Statements - MY ENIGMA 8. MATLAB Programming Style Guidelines : Layout, Comments and Documentation - MY ENIGMA もし,これらの文章に意見や質問,誤謬などがあれば, それぞれの記事にコメントしてもらえると幸いです. また,今回の一連の文章は...
13年前
記事のアイキャッチ画像
MATLAB Programming Style Guidelines 2: Naming Conventions
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す この記事は, Datatool社のRichard Johnson氏が書いた "MATLAB Programming Style Guideline" を自分なりに翻訳したものです. この文書は MATLABのコードをより素晴らしいものにするための 多数のコーディング作法について書かれています. 翻訳結果は以下の各リンクから読むことができます. 0. MATLAB Programming Style Guidelines : About This Document - MY ENIGMA 1. MATLAB Programming Style Guidelines : Introduction - MY ENIGMA 2. MATLAB Programming Style Guidelines : Naming Conventions - MY ENIGMA 3. MATLAB Programming Style Guidelines : Constants and Structures - MY ENIGMA 4. MATLAB Programming Style Guidelines : Functions - MY ENIGMA 5. MATLAB Programming Style Guidelines : General - MY ENIGMA 6. MATLAB Programming Style Guidelines : Files and Organization - MY ENIGMA 7. MATLAB Programming Style Guidelines : Statements - MY ENIGMA 8. MATLAB Programming Style Guidelines : Layout, Comments and Documentation - MY ENIGMA もし,これらの文章に意見や質問,誤謬などがあれば, それぞれの記事にコメントしてもらえると幸いです. また,今回の一連の文章は...
13年前
記事のアイキャッチ画像
MATLAB Programming Style Guidelines 1: Introduction
MATLAB - MyEnigma
急にMATLAB/Simulinkを使うことになった時に読む本 posted with カエレバ 株式会社ネクスティエレクトロニクス 2018-03-15 Amazonで探す 楽天市場で探す Yahooショッピングで探す この記事は, Datatool社のRichard Johnson氏が書いた "MATLAB Programming Style Guideline" を自分なりに翻訳したものです. この文書は MATLABのコードをより素晴らしいものにするための 多数のコーディング作法について書かれています. 翻訳結果は以下の各リンクから読むことができます. 0. MATLAB Programming Style Guidelines : About This Document - MY ENIGMA 1. MATLAB Programming Style Guidelines : Introduction - MY ENIGMA 2. MATLAB Programming Style Guidelines : Naming Conventions - MY ENIGMA 3. MATLAB Programming Style Guidelines : Constants and Structures - MY ENIGMA 4. MATLAB Programming Style Guidelines : Functions - MY ENIGMA 5. MATLAB Programming Style Guidelines : General - MY ENIGMA 6. MATLAB Programming Style Guidelines : Files and Organization - MY ENIGMA 7. MATLAB Programming Style Guidelines : Statements - MY ENIGMA 8. MATLAB Programming Style Guidelines : Layout, Comments and Documentation - MY ENIGMA もし,これらの文章に意見や質問,誤謬などがあれば, それぞれの記事にコメントしてもらえると幸いです. また,今回の一連の文章は...
13年前