Contents:
sys = stack(arraydim,sys1,sys2,...)
set(0,'DefaultFigureWindowStyle','docked'); % dockに入るようにする場合 set(0,'DefaultFigureWindowStyle','normal'); % 元に戻す場合
set(gcf,'paperpositionmode','auto') print(gcf,'-depsc2','-loose','myfigure.eps');
h = findall(gcf,'type','axes'); legend(h(3),'line1','line2') set(h(3),'YLim',[-50 50]) % Gain set(h(2),'YLim',[-90 0]) % Phase
h = findobj(gcf,'type','axes'); set(h, 'FontSize',12); h = findobj(gcf,'type','text'); set(h, 'FontSize',12);
MATLABの設定をクリアすると改善されることがある。具体的には,プリファレンスフォルダを R2012a_old などとリネームしてからMATLABを起動する。プリファレンスフォルダは
>> prefdir
で調べられる。
startup.m に以下を追加.
set(0,'defaultAxesFontSize',14) set(0,'defaultTextFontSize',14) set(0,'defaultAxesFontName','Helvetica') set(0,'defaultTextFontName','Helvetica')
なお,現在のデフォルト値は下記のコマンドで調べられる.
get(0,'Default')
startup.m に以下を追加
% figure position % 568 x 496 screen = get(0,'ScreenSize'); width = screen(3); height = screen(4); mwwidth = 560; mwheight = 420; left = 5; bottom = height - mwheight - 70; rect = [ left bottom mwwidth mwheight ]; set(0,'defaultfigureposition',rect);
>> fmtfig(fontsize,linewidth,'Times')
の様に使用します。引数は省略できます。
この m-file では,gcfのプロパティをまとめて変更します。ただし,Control System Toolboxの bode などでプロットした図については,正常に動作しません。bodeなどは,ctrlpref でフォントサイズなどを設定します。
>> set(legend,'fontsize',14)
function chgstyle(h) % chgstyle.m ch = get(h,'children'); n = length(ch); for i=1:n set(ch(i),'linewidth',2) end
上記関数を chgstyle.m という名前で保存し以下を実行する
>> chgstyle(gca)
EPSファイルの中にある色の定義を書き換えます。
/c0 { 0 0 0 sr} bdef /c1 { 1 1 1 sr} bdef /c2 { 1 0 0 sr} bdef /c3 { 0 1 0 sr} bdef /c4 { 0 0 1 sr} bdef /c5 { 1 1 0 sr} bdef /c6 { 1 0 1 sr} bdef /c7 { 0 1 1 sr} bdef
MATLABのグラフをEPSファイルに変換すると,xlabel, ylabel に半角英数字しか使用していないのにもかかわらず日本語フォントが含まれます。国際会議に論文をPDFファイルで投稿する際,最近PDFファイルのチェックが厳しく,EPSファイルに日本語フォントが含まれていると,投稿が拒否されます。そこで,EPSファイルに含まれる日本語フォント
GothicBBB-Medium-83pv-RKSJ-H
を強制的に Helvetica に書き換える perl スクリプト convmlfig.plを作成しました。 DOS窓で
perl convmlfig.pl
を実行すると,カレントディレクトリにある eps ファイルを書き換えて,その一つ上のディレクトリにコピーします。なお,MATLABのバージョンによってはうまく動作しない可能性があります。必ずオリジナルのファイルのバックアップをとってください。
set(0,'lang','english')
figure(1) bode(G),grid ch = get(figure(1),'children') set(ch(2),'YLim',[-50 50],'XLim',[1e1 1e4])
fs = 14; fntname = 'Times'; set(findobj('type','axes'),'fontsize',fs,'fontname',fntname); set(get(gca,'Xlabel'),'fontsize',fs,'fontname',fntname); set(get(gca,'Ylabel'),'fontsize',fs,'fontname',fntname);
>> set(gca,'Box','on')
>> set(gca,'fontsize',12);
ltiviewを起動し,"File" -> "Toolbox Preference"から rad/sec か Hz を選ぶ。
または,コマンドレベルで以下のようにする。
>> f = logspace(-1,1,100); >> w = 2*pi*f; >> [mag,phase] = bode(sysc,w); >> semilogx(f,20*log10(reshape(mag,[100 1]));
参考: