フィギュアに多くの「テキストブロック」(複数行のテキストを「テキストブロック」と呼びます)を追加するためのより良い、よりコンパクトな方法を見つけようとしています。たとえば、次の図を参照してください。
この図を生成するために使用したコードは次のとおりです。
x=-4*pi:pi/20:4*pi;
y=cos(x);
% generate positions for the text blocks
[ypos,xpos]=find(ismember(y,max(y))); % finds multiple maxima
% generate random data to be presented
info1=rand(1,numel(xpos)); info2=rand(1,numel(xpos)); info3=rand(1,numel(xpos));
plot(x,y);
ylim([-1.1 1.4])
% generate the "text blocks"
text(x(xpos),ypos+0.3,strcat('A_{',num2str((1:numel(xpos))'),'}=',num2str(info1','%0.1f')),'FontSize',8);
text(x(xpos),ypos+0.2,strcat('B_{',num2str((1:numel(xpos))'),'}=',num2str(info2','%0.1f')),'FontSize',8);
text(x(xpos),ypos+0.1,strcat('C_{',num2str((1:numel(xpos))'),'}=',num2str(info3','%0.1f')),'FontSize',8);
%...
%... etc
文字列変数をセルごとに1行のセル配列として定義することにより、セル配列を使用して複数行のテキスト文字列を追加できることを認識しています。例えば:
text(x,y,{'line 1' ; 'line 2' ; 'line 3'});
ただし、これにはテキストブロックごとに1行のコードも必要になるため、マルチテキストブロックの場合は解決されません...
私の質問は次のとおり です。これらのテキストブロックを1行に追加する方法はありますか、またはより一般的な意味で、たとえば、それぞれに可変数のテキスト行を持つn個のテキストブロックがある場合はどうでしょうか。