如何在MATLAB中裁剪二维曲面图,以消除轴和白边?

时间:2015-12-11 12:25:05

标签: matlab matlab-figure

我编写了一个程序来处理和打印81x81 2D曲面图,需要将其用作输入。保存Matlab绘制的图包括侧轴和侧边的白边。 如何裁剪此图像以将(81像素)x(81像素)输出作为图像输出?

2 个答案:

答案 0 :(得分:2)

尝试在图形代码后面放置它,它将移除图形周围的边距。

set(gca,'units','pixels') % set the axes units to pixels
xx = get(gca,'position'); % get the position of the axes;
set(gcf,'units','pixels') % set the figure units to pixels
yy = get(gcf,'position'); % get the figure position;
set(gcf,'position',[yy(1) yy(2) xx(3) xx(4)]) % set the position of the figure to the length and width of the axes
set(gca,'units','normalized','position',[0 0 1 1]) % set the axes units to pixels

答案 1 :(得分:0)

您可以避免使用冲浪图并将阵列保存为图像。所以,你有81x81阵列。我将以此为例:

 a = magic(81);

现在您需要对图像进行标准化,以使值为0到255:

 a = (a - min(min(a)))/(max(max(a))-min(min(a)))*255;

最后,您使用imwrite将数组保存为图像。

 imwrite(a,jet(256),'SO_4.png')

第一个参数是你的81x81阵列。第二个参数是colormap。您可以指定所需的任何色彩映射,但我喜欢热图jet(256)。您可以跳过此参数,在这种情况下,图像将是灰度。从here,您可以找到可用的彩色地图以及它们的外观。最后一个参数是图像名称。结果如下所示:

enter image description here

希望有所帮助,祝你好运。