Twitterに投稿 はてなブックマークに追加 Google Bookmarksに追加

目次 >> MATLAB

MATLABの使い方

ここではMATLABの使い方について述べる。

図の印刷サイズを指定するには?

PaperOrientationとPaperPositionで指定する。

レターサイズの横置きに指定するには、

set(gcf,'PaperOrientation','landscape')
set(gcf,'PaperPosition',[0,0,11,8.5])

となる。
PaperPositionの指定は、左,下.幅,高さ、の順で指定する。
デフォルトの単位はインチなので、PaperUnitsで単位を指定する。

set(gcf,'PaperUnits','centimeters')

とすると、単位がセンチメートルになる。

DPIを指定して出力するには?

DPIすなわちpixels per inchを指定して印刷する。
例えば300DPIで出力するには、PaperUnitsをインチに指定して、ピクセル数で指定した幅および高さをDPIで割れば良い。
print時には-rオプションでDPIを指定する。

この例では、 横10800ピクセル、縦4800ピクセルで300DPIのJPEG画像example.jpgを出力している。

dpi=300;
set(gcf, 'PaperUnits', 'inches', 'PaperPosition', [0 0 10800 4800]/dpi);
print(gcf,'-djpeg',sprintf('-r%d',dpi), 'example.jpg');

図の目盛りを消すには

軸を消すaxis offだと、ラベルまで消えてしまう。
単に目盛りを消すには、Ticklengthを0にしてしまえば良い。

set(gca,'Ticklength',[0 0])

x軸を上に移動するには?

x軸は、通常下につく。
上につけるには、

set(gca,'XAxisLocation','top')

とすればよい。

コマンドラインから、MATLABを起動してそのままmファイルを実行するには?

hoge.mというmファイルをMATLABを起動して実行するには、matlab起動時に-rオプションをつけて、その引数にmファイルを指定する。

matlab -r hoge

このとき、拡張子「.m」をつけてはいけない。

スプラッシュ画面を表示せずに起動するには?

-nosplashを起動オプションにつける。

matlab -nosplash

表示桁数を増やすには?

format long g

で、より多くの桁数を表示することができる。

do-whileを実現するには?

MATLABにはdo-while文は用意されていない。
do-whileを実現するには下記のようにする。

cond=true;
while cond

%何かいろいろとやる

cond = (条件式);
end

ployyで軸の範囲を設定するには?

x軸が共通で左右にy軸を持つグラフはplotyy()で表示できる。

x=0:0.1:2;
y1=sin(x);
y2=exp(x);
plotyy(x,y1,x,y2)

このとき、単にaxis()関数を使ったのでは、左側のグラフしか変更できない。そのようなときは下記のようにするとよい。

x=0:0.1:2;
y1=sin(x);
y2=exp(x);
[ax h1 h2]=plotyy(x,y1,x,y2);
axis(ax(1),[0 3 0 2])
axis(ax(2),[0 3 0 20])

文字の連結

C言語のstrcatと同様のstrcatという関数が用意されているが、[ ]で簡単に連結することができる。

> strcat('abc','def')
ans =
abcdef
> ['abc' 'def']
ans =
abcdef

レンダリング手法の選択

Matlabには3つのレンダリング手法が用意されている。Painters、ZBuffer、OpenGLの3つである。
デフォルトでは、Paintersになっているが、表示するデータやデバイスよっては変更することによって表示品質や描画速度を大幅に上げることができる。
まず、ZBufferであるが、Paintersではきれいに表示、印刷およびエクスポートできない画像に適用すると、きれいに表示することができる。ただし、表示速度は一般に遅い。
OpenGLは3D表示において威力を発揮する。グラフィックカードがOpenGLをサポートしている場合は特にである。
手短にまとめると、2D画像の場合は、ZBufferを3D画像の場合はOpenGLを選択すると一般的によい結果が得られる。

レンダリング手法の切り替えは、

set(gcf, 'Renderer', 'opengl')

あるいは、

set(gcf, 'Renderer', 'zbuffer')

のように行う。

set(0,'DefaultFigureRenderer','opengl')

また、OpenGLに関する情報は、

opengl info

で得ることができる。

起動時にデフォルトの設定を行うには?

グラフを描画する際のフォントサイズや線の太さなどのデフォルト値をstartup.mというファイルに書き込むことによって自動的に設定することができる。
startup.mのファイルの位置は、R2006b以前であれば、MATLABのインストールフォルダの中のworkフォルダ、R2007a以降であればMy Documentフォルダの中のmatlabフォルダである。
基本的には、

set(0, 'Defaultほげほげ', 設定値);

のような書式をとる。

グラフの線の太さの設定

set(0, 'DefaultAxesLineWidth', 5);

軸のフォントサイズ

set(0, 'defaultAxesFontSize', 24);

カラーマップ

set(0, 'defaultFigureColormap', jet(1024));

軸ボックス

set(0, 'defaultAxesBox', 'off');

ファイルをゴミ箱に捨てるには?

recycleコマンドを使って設定する。
recycle onでゴミ箱に捨てる動作が有効になる。実際の削除はdeleteコマンドを使う。

recycle on;
delete hoge.dat

hoge.datファイルがゴミ箱に移動される。

recycleコマンドを単独で使うと、現在の設定状況が表示される。

recycle
ans =
off

ファイル名のうち拡張子だけ変更するには?

たとえばdatafile.datというファイルがあるとして、そこからプロットした画像をdatafile.pngとして保存したい場合がある。
その場合下記のようにすればよい。

%get filename
[FileName,PathName,FilterIndex] = uigetfile('*.*');
fname=[PathName FileName];

%get elements
[picpath,picfilename,ext] = fileparts(fname);

%chnage ext
picfname=[picpath '\' picfilename '.png']

どのツールボックスがインストールされているか調べるには?

MATLABには多数のツールボックスがあり、どのツールボックスがインストールされているのかわからなくなる時がある。
その場合verコマンドを使えばよい。

>> ver
-----------------------------------------------------------------------------------------------------
MATLAB Version: 9.9.0.1592791 (R2020b) Update 5
MATLAB License Number: 123450
Operating System: Microsoft Windows 10 Pro Version 10.0 (Build 19043)
Java Version: Java 1.8.0_202-b08 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
-----------------------------------------------------------------------------------------------------
MATLAB                                                Version 9.9         (R2020b)
Image Processing Toolbox                              Version 11.2        (R2020b)
MATLAB Compiler                                       Version 8.1         (R2020b)
Parallel Computing Toolbox                            Version 7.3         (R2020b)

グラフを保存するには?

グラフを大量に作成した時、一つ一つ手動で保存するのは大変である。
そんなときは、saveas関数を使うと便利である。
書式は

saveas(h,'filename.ext')
saveas(h,'filename','format')

である。hはハンドルであるので、現在表示しているグラフであれば、

saveas(gcf,'filename.jpg')

の様になる。最初の書式の場合、拡張子によって自動的にファイルのフォーマットが決まる。
2つめの書式では、フォーマット直接指定している。


最終更新日


本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellのSUSE Linux OSSを表します。Fedora7以降は、単にFedora7、Fedora8、Fedora9、Fedora10、Fedora11、Fedora12、Fedora13、Fedora14、Fedora15と表示しています。Ubuntuは、必要に応じて20.04、21.04のようにバージョン番号をつけて区別しています。

ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。
実際に使用する際は、各自の環境に合わせて書き換えてください。
もし何か間違いなどありましたらこちらからご連絡ください
リンクに許可は不要です。
Copyright (C) 2021 Chikuma Engineering Co., Ltd. All Rights Reserved.