最新MATLABハンドブック 第五版

概 要

理工系大学で卒業論文の研究をはじめる4年生や大学院生およびエンジニアを対象にしたMATLAB/Simulink入門書の第五版です。MATLAB/Simulinkは多彩な用途に使用できるため、付属するマニュアルは膨大で、概念を理解するのも大変です。本書は、MATLABの起動から、数値演算、データをビジュアライズするためのグラフィック関数・コマンド、外部ファイルからのデータ入出力、非線形性の物理的モデルや数学モデルを離散値系・連続系で扱えるソフトSimulink、MATLAB7.6で拡張されたオブジェクト指向プログラミングなどをサンプルを示しながらわかりやすく解説しています。特に、これから研究室に配属され、研究をはじめる方に有用な情報やテクニックを多数掲載しています。

著者 小林一行
価格 本体3000円(税別)
ISBN 978-4-7980-4139-1
発売日 2014/6/27
判型 A5
色数 1色
ページ数 432
CD/DVD
対象読者 中級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Chapter 0

なぜMATLABか?

MATLABの使用用途は?

Simulinkの使用用途は?

MATLABを使いこなすためのポイント

使用時のポイント

スクリプト作成時のポイント

MATLAB文法でのポイント

Chapter 1 MATLABとは

行列演算ツールとしてのMATLAB

MATLABの起動

基本的な数値・変数の扱い方

単純な数値演算

round、ceil、floor、fix関数について

変数による入力

基本算術演算子

MATLABワークスペース

特殊変数と定数

MATLAB変数の注意事項

複素数の扱い

ファイル操作・実行・保存

MATLABスクリプトmファイル

ファイル管理(関数管理)

スクリプトmファイルの保存・実行

コメント文

継続文

スクリプト内での変数値の表示

mファイル エディタ/デバッガによる方法

実行処理速度を解析するコマンド(profileコマンド)

配列・行列演算

配列演算子

コロン演算子を使ったインデックス番号指定

多次元配列の場合

コロン演算子のみの使用

配列操作

スカラーと配列/行列の算術演算

配列同士または行列同士の算術演算

空配列を利用した行列・配列のダイナミックアロケーション(動的確保)

zeros関数、ones関数

行列・配列の大きさを調べる関数

配列中の要素のサーチ

\演算子

比較演算子

論理演算子

Logical Indexing機能とfind関数

ビットの演算

文字列の扱い方

文字列について

数値から文字列への変換

文字列関数(eval関数)

制御フロー

for文

if文

while文

switch文

try-catch文

制御フローのまとめ

演習問題

Chapter 2 データビジュアライゼーションツールとしてのMATLAB その1

MATLABグラフィックコマンド体系

2次元グラフィックス

plot関数

行列形式での記述

ラインタイプ、プロットシンボル、カラーについて

グリッドやラベルの追加

axis関数による表示設定の変更

xlim関数、ylim関数

表示スケールの変更

legend関数

holdコマンド

plotyy関数

subplot関数

zoomコマンド

plot関数を使ったアニメーション

loglog関数、semilogx関数、semilogy関数

特殊なグラフ関数

bar関数のオプション

hist関数のオプション

stairs関数

stem関数

errorbar関数

3次元グラフィックス

plot3関数

ビューポイントの移動

2変数の1出力関数のプロット

mesh関数のオプション

surf関数のオプション

contour3関数

2-Dプロットによる3-Dデータの表示

quiver関数

テクスチャマッピング

light関数

ボリュームビジュアライゼーション関数

ムービー用関数

演習問題

Chapter 3 信号処理ツールとしてのMATLAB

MATLABへのデータ入出力

load・saveコマンド

loadコマンド

saveコマンド

各種データをウィザード形式で読み込む

低レベルファイル入出力関数

audioread関数

信号処理のための基礎知識

MATLABで時間応答グラフを描く場合の注意点

フーリエ変換とは

直交関数の内積(2信号の相関)

ウォルシュ関数による直交性の例

sin・cos関数に関する直交性

MATLABのfft関数について

fft関数と時系列データとの関係

表示のまとめ

波形整形法

フィルタ(signal processing toolboxが必要)

伝達関数、状態方程式による波形整形(control system toolboxが必要)

伝達関数の離散値化

スムーザ

fft関数によるフィルタリング

fft関数によるバンドパスフィルタ

バンドエルミネーションフィルタ

スプライン関数によるデータ補間

特徴抽出

最小二乗カーブフィット

周波数領域による特徴抽出

spectrogram関数

自己回帰モデル法による周波数解析

arモデルからの周波数抽出例

fft法とarモデルによる方法の周波数分解能の違い

演習問題

Chapter 4 Simulinkとは

Simulinkの起動

ブロック図を描く

コンフィグレーションパラメータの設定

MATLABとSimulinkとの連携

Simulinkによるダイナミックシミュレーション

sim関数を使った2次振動系のシミュレーション

DCモータのシミュレーション例

サブシステム化

フィードバック制御によるDCモータのコントロール

速度フィードバックと位置フィードバック

P要素によるコントロール

PI要素によるコントロール

PID要素によるコントロール

現実的な非線形要素の対策

飽和要素によるワインドアップ現象

2重積分とバックラッシュの直列結合

演習問題

Chapter 5 データビジュアライゼーションツールとしてのMATLAB その2

Handle Graphicsによるビジュアライゼーション

Handle Graphics

rootハンドル

figureハンドル

axesハンドル

lineハンドル

その他の便利なコマンド

findobj関数

MATLABのグラフィックアニメーションテクニック

軸と線に関する属性の変更(属性'drawmode','erasemode'の変更)

全ての属性を変更した場合とその比較

Handle Graphicsを利用したMATLABイベントプログラミングテクニック

サンプルスクリプト例callback

属性'ButtonDownFcn'・'WindowButtonDownFcn'

属性'Interruptible'

無限ループシミュレーションの中断、再実行するスクリプト

属性'WindowButtonDownFcn'を使った簡単なデモスクリプト

Graphical User Interface(GUI)の構築

GUIのオブジェクトとしての位置づけ

uimenu関数について

メニューバーの追加

メニューバーのショートカットキーの割り当て

メニューバーの概観を整える

メニューアイテムの無効化

メニューバーの属性'callback'

uicontrol関数

pushbuttonスタイル

togglebuttonスタイル

radiobuttonスタイル

checkbox スタイル

textスタイル

editスタイル

sliderスタイル

frameスタイル

listboxスタイル

popupmenuスタイル

guideコマンド

簡単な3次元のViewを変更するスライダの作成

まとめ

演習問題

Chapter 6 プログラミング処理言語としてのMATLAB

関数mファイル

関数mファイルの利点

簡単な、関数mファイルの例(a+bの計算してその結果を出力)

helpコマンドのためのコメント

可変入出力変数(nargin,nargout)

可変引数(varargin)

サブ関数

global変数

global変数を使った、簡単なサンプルスクリプト

MATLAB関数内のみで内部的に変数値を保持したい場合(persistent変数)

関数を呼び出すための変数(@変数)

(1)ode45関数を使った常微分方程式の解法

非線形連立微分方程式のシミュレーション

付加パラメータの利用

(2)quad関数を使った円周率の計算例

(3)fminsearch関数を利用した逆関数の作成応用

未知変数が複数の場合

扱えるデータ型と構造について

classdef構文を使ったオブジェクト指向プログラミング

関数mファイルの問題点

classdef構文の概要

オリジナルクラス(binary class)の作成

別ファイルでメソッドを書く方法(MATLAB7.6より前)

1つのファイル内にメソッドを書く方法(MATLAB7.6以降)

表示関数

変換関数

オペレーターオーバーロード

classdef構文で使う、属性

classdef構文の属性指定例

propertiesブロックの属性指定例

methodsブロックの属性指定例

eventsブロックの属性指定例

handleクラスの応用

画像処理でハンドルクラスを継承した場合としない場合の結果の違い

多次元配列

構造体(structures)

構造体配列

セルアレイ

変数の型のまとめ

演習問題

Chapter 7 MATLABプログラミング応用例

GUIによる信号処理機能つきオシロスコープの作成

audiorecorder関数を使った音声信号リアルタイムビジュアライゼーション

音声データのリアルタイム表示

時間軸データからの特徴抽出

最大値の検出とその表示

max,min関数を使ったデータの最大最小カーソル表示例

時間軸カーソル表示例

平均値の計算と直流分のカット

標準偏差の計算

GUIによるオシロスコープの作成 その2

最小二乗法によるカーブフィッティング

時間データからの周期の検出

元となるデータについて

ノイズ対策

GUIによるオシロスコープの作成 その3

oscillodemo関数

adrun関数

adevent関数

adsetpara関数

adupdateevent関数

adupdate関数

Supplement 補 足

1章の演習問題の解答

2章の演習問題の解答

3章の演習問題の解答

4章の演習問題の解答

5章の演習問題の解答

6章の演習問題の解答

トピック別目次

MATLABのヘルプを英語モードにするには?

知っていると便利なコマンド

コマンドウィンドウ上での数値表示形式

cdコマンドの注意

スクリプトmファイル名の注意点

MATLAB起動時、終了時に実行されるスクリプトmファイル

checkcode関数によるコードの文法チェック

パブリッシュ機能

コロン演算子による横ベクトルの作り方

コロン演算子を使ったテクニック

MATLABの図のバックグランドの色

logicalクラス

if文での注意

for 文とwhile文の表現の違い(ステップ間隔が1の場合)

MATLABスクリプトを実行中、中断させたい時

コマンドウィンドウからプロンプト「>>」が出なくなってしまった場合

複数のグラフを描いた後からgridコマンドなどを設定するには

使用可能なTeXライクな文字について

clearコマンド

数字以外の文字を軸に表示するには

図をファイルに保存するには

fontsizeの変更

コマンドウィンドウ上で実行したコマンドを記録しておくには

fft処理したデータは対称に出力されるか?

bode関数を用い、横軸をHzにするには?

MATLABでの計算結果を高精度のまま他のアプリケーションに移すには?

ピークを検出するには?

複数のデータをScopeにより表示する場合

終了時間を指定しない方法は

ブロックパラメータを表示する

1次のハイパスフィルタをSimulinkブロックで作るには?

接続線情報の表示

マスクブロックをカスタマイズするには?

属性'callback'に書くための文字列をチェックするには?

属性'units'

関数mファイルを作らずにスクリプトmファイル内で関数を宣言するには?

セルモード活用

エディタ上の別スクリプト、関数の参照

コマンドと関数の違い

global変数を定義するときの注意

struct関数とclassdef構文のpropertiesブロックで作った構造体の違い

特別なフォルダ名

methodsブロックでの関数の引数

timer関数による擬似マルチタスク処理

PR

秀和システム