MATLABの使い方
第７回：関数まとめページ：
http://www.nuee.nagoya-u.ac.jp/labs/plaene/koukai/purakaku85/tsukaikata/☆１

第６回の復習・グラフの作成、設定、種類、保存

今回はMATLABに用意済みの関数と、自分で新しく関数を定義する方法の説明☆３の内容はひとまず今回まで！
次回以降は少し込み入った内容。

☆１

関数の種類
□ 内部MATLAB関数（MATLAB付属の関数）

exist plot

・ 組み込み関数（編集不可）
・ M-ファイル関数（toolboxディレクトリ内）□ ユーザ定義の関数（新しく作る関数、後述）
exist surf

組み込み関数の実行は高速☆１

内部MATLAB関数○ 環境変数○ 数学○ プログラミングとデータタイプ○ ファイルI/O

MATLABの使い方 第５回：データの入出力○ グラフィックス

http://hdp.nifs.ac.jp/soken/tanaka/tsukaikata/matlab5.pdf○ 3-D可視化MATLABの使い方 第６回：グラフィックス機能
http://hdp.nifs.ac.jp/soken/tanaka/tsukaikata/matlab6.pdf○ グラフィカルインターフェース（GUI）○ 外部インターフェース

今回は省略

http://www.mathworks.co.jp/help/ja_JP/techdoc/ref/f16-6011.html

☆２

環境変数

help: 関数の説明
lookfor: キーワード検索

clc: コマンドウィンドウのクリア

who, whos: カレントの変数の表示
which: 関数の位置の出力

home: コマンドウィンドウ左上隅にカーソルを移動

exist: 変数や関数の定義確認

pack: ワークスペースメモリの集約

cd: カレントディレクトリの移動

clear: 変数の消去

dir, ls: カレントディレクトリのリスト

pwd: カレントディレクトリの表示

path: サーチパスの表示と設定

edit: エディタの起動

addpath: サーチパスの追加

exit, quit: MATLABの終了

genpath: パス文字列を作成

☆２sum: 和
prod: 積diff: 差分
mean: 平均std: 標準偏差
var: 分散

abs: 絶対値

数学
pi: 円周率

cart2sph: 直交座標→球座標

i, j: 虚数単位

cart2pol: 直交座標→極座標

NaN: 不定値

pol2cart: 極座標→直交座標

Inf: 無限大

sph2cart: 球座標→直交座標

real, imag, conj: 複素数
exp: 指数関数

sqrt: 平方根

log, log2, log10: 対数関数

norm: ノルムsin, cos, tan: 三角関数

mod, rem: 剰余poly, polydar, polyfit, polyval: 多項式フィッティング

floor, ceil, round:
小数の丸め
max, min: 最大、最小値

zeros: ゼロの配列
ones: 1の配列

eye: 単位行列
rand: 一様分布乱数
randn: 正規分布乱数

pchip, spline, interp1, interp2,interp3: 補間
linspace: 線形的に等間隔ベクトル
logspace: 対数的に等間隔ベクトル

☆２

プログラミング

length: 長さ
ndims: 次元
size: サイズ
fliplr, flipud, flipdim: 配列の反転
sort: 昇順にソート

if, elseif, else: if文==: イコールfor: for文<, <=: 超、以上

while: while文>, <=: 未満、以下break, continue: ルー~=: ノットイコールプの中止とスキップ

warning: 警告
return: 戻る

switch, case: switch文
try, catch: try文

error: エラー&: 論理積repmat: 配列の複製

input: ユーザ入力|: 論理和find: 非ゼロ要素の検出

disp: 配列の表示~: 否定

pause: 一時停止

xor: 排他的論理和varargin, varargout:
可変入出力引数

tic, toc: ストップウォッチ

all: 全て1any: 1が1つ以上

nargin, nargout: 入出
力引数の数

waitbar: ウェイトバー
eval: 文字列の実行

union: 和集合

feval: 指定関数の実行

intersect: 共通部分

drawnow: 図の更新

setdiff: 差集合

☆２

データタイプ[ ]: 配列の作成、連結{ }: セル配列の作成と解除
num2str: 数字→文字列
str2num: 文字列→数字
char: 文字列に変換
double: 倍精度に変換
uint8: 符号無し8ビット整数に変換
upper, lower: 大文字・小文字に変換

isnan: NaN検出
isinf: Inf検出

isempty: 空行列検出
isa: 指定クラスの検出
class: クラスの出力
permute, rehape, squeeze:
配列の次元の再配列、サイズ変更、次元の削除

strcat, strvcat: 文字列の結合

global: グローバル変数の宣言

strcmp: 文字列の比較

persistent: 永続変数の宣言

findstr: 文字列の検出

mlock, munlock: 変数削除の防止と解除

blanks: ブランク文字列

☆２ファイルI/O
load, save: MATファイルI/O
dlmread, dlmwrite: ASCII区切り値ファイルI/O

csvread, csvwrite: カンマ区切り値ファイルI/O
xmlread, xmlwrite: XMLファイルI/O
textread: テキストファイル読み込み
fopen, fread, fwrite, fscanf, fprintf, fclose: 低水準I/O
imread, imwrite, imfinfo: 画像ファイルI/O
aviread, movie2avi, aviinfo: AVIファイルI/O

wavread, wavwrite, wavinfo: WAVEファイルI/O
wavrecord, wavplay: 録音と再生VideoReader, VideoWriter: ビデオファイルI/O
sendmail: メールの送信☆２

グラフィックス/3-D可視化

hold: グラフの保持

caxis: 色軸のスケーリング

grid: グリッドライン

figure: Figureの作成

title: タイトル

axes: 任意のAxesを作成

legend: 凡例

subplot: タイル状にAxesを作成

text, gtext: テキストの配置

close: Figureの削除

xlabel, ylabel, zlabel: 軸のラベル

clf, cla: Figure、Axesのクリア

xlim, ylim, zlim: 軸範囲の設定

saveas: Figureの保存

axis: 軸の範囲と外観

get: オブジェクトプロパティの取得

daspect: 縦横比の設定

set: オブジェクトプロパティの設定

view: 視点の設定

reset: オブジェクトプロパティのリセット

box: Axesの境界

findobj, gcf, gca, gco: ハンドル番号の取得

rotate: オブジェクトの回転ginput: マウスによるデータ入力

clabel: 標高ラベル
colorbar: カラーバー
colormap: カラーマップの設定
shading: カラーシェーディング
lighting: ライティング
camlight: ライトの作成
alpha: 透明度の設定

plot, plotyy, semilogx, semilogy, loglog, stairs, bar, hist, contour, contourf, patch,scatter, polar, area, pie, quiver, fill, image, movie: 2次元プロット
plot3, mesh, surf, surface, contour3, bar3, scatter3, pie3, quiver3, fill3: 3次元プロット
isosurface, isonormals, reducepatch, slice, coneplot, contourslice, streamline,
streamparticles: ボリュームデータの可視化☆２

ユーザ定義関数○ 1行目に「function 関数名」を宣言することで定義○拡張子はm出力例：MATLABエディタで次のように記入して保存

function pg=gauss(x,mu,sigma) 入力
pg=1/sqrt(2*pi)*sigma.^-1.*exp(-(x-mu).^2./(2*sigma.^2));

コマンドウィンドウで次のように入力すると・・・

平均値0、標準偏差1のガウス分布

☆１

2次元プロット関数の作成

2次元塗りつぶしプロット関数として用意されているcontourfはいろいろと好ましくないことも多いのでsurfプロットを2次元で見る関数を作成してみる

右の枠内をコピペして保存
surf2(peaks)で↓function h=surf2(varargin)%------------------------------------------------% 2D surface plot%
SURF関数を利用した2次元サーフェスプロット%
Data: 2009/12/14%
Modified: 2012/01/04この部分はHelpコマンド%------------------------------------------------%
使用時に表示される% SURF2(X,Y,Z,C)はSURF(X,Y,Z,C)を実行し、その後視点を% 2次元の視点へ移すことで2次元サーフェスプロットを実現% します。またシェーディングを補間、ライティングをphong% に設定します。さらに軸のスケーリングを変更します。

% Author(s): H. Tanaka (Nagoya University)
hh=surf(varargin{:});view(2); box on;
shading interp; lighting phong;axis tight;
if nargout==1, h=hh; end