MATLABのプロットの枠外に注釈を書きたい

axesコマンドを使って、透明なレイヤーを確保して、そのレイヤーにtextコマンドをつかって文字を書き込む。textコマンド(かつデフォルトの単位系)を使うときは、画面左下の座標が(0,0)で画面右上の座標が(1,1)となる。

例1

x=linspace(0,2*pi,2000);
y=exp(-x).*sin(20*x);
plot(x,y)

ax = axes('Position',[0 0 1 1],'Visible','off');
axes(ax)
text(0.1, 0.98, 'y=exp(-x).*sin(20*x)')

f:id:imakov:20211010214713p:plain

複数行のテキストを入力したいときは、セル配列を使う
例2

figure
subplot(1,2,2)
x=linspace(0,2*pi,2000);
y=exp(-x).*sin(20*x);
plot(x,y)

descr = {'Plot of the function:';
    'y = exp(-Ax) sin(Bx)';
    ' ';
    'With the values:';
    'A = 1';
    'B = 20'};

ax = axes('Position',[0 0 1 1],'Visible','off');
axes(ax)
text(0.45, 0.5, descr, 'horizontalalignment', 'right')

f:id:imakov:20211010214754p:plain