3

次のコード行を使用して、画像をプロットします。

for t=1:subplotCol
    subplot(subplotRow,subplotCol,t)
    imagesc([1 100],[1 100],c(:,:,nStep*t));
    colorbar
    xlabel('X-axis')
    ylabel('Y-axis')
    title(['Concentration profile at t_{',num2str(nStep*t),'}'])

    subplot(subplotRow,subplotCol,subplotCol+t)
    hold on;
    plot(distance,gamma(:,1,t),'-ob');
    plot(distance,gamma(:,2,t),'-or');
    plot(distance,gamma(:,3,t),'-og');
    xlabel('h');ylabel('\gamma (h)');
    legend(['\Theta = ',num2str(theta(1))],...
        ['\Theta = ',num2str(theta(2))],['\Theta = ',num2str(theta(3))]);
end

画像付きの次のサブプロットを取得します。

ここに画像の説明を入力

ご覧のとおり、最初の行の各画像の画像マトリックスのサイズは 100x100 ですが、最初の行の画像は X 軸と Y 軸で均等にスケーリングされています (Y 軸は X 軸よりも長い)。

私が現在得ている長方形ではなく、最初の行の画像を正方形のように見せる方法を教えてください。ありがとう。

4

2 に答える 2

5

dataAspectRatio軸のプロパティを使用して、次のように設定します。[1 1 1]

%# create a test image
imagesc(1:10,1:10,rand(10))

ここに画像の説明を入力

%# you should use the handle returned by subplot
%# instead of gca
set(gca,'dataAspectRatio',[1 1 1])

ここに画像の説明を入力

于 2012-07-07T23:23:19.973 に答える
1

別の方法は、コマンドを使用することですaxis equal

さまざまなオブジェクトのサイズに関して、たとえば最初に使用する場合など、図の各軸の正確な位置を設定できます。 subplot(2,2,1); set(gca,'Position',[0.05 0.05 0.4 0.4])

于 2012-07-08T13:07:32.850 に答える