matlab 绘制figure ,不显示figure并保存
时间: 2024-09-14 12:07:15 浏览: 31
Matlab中绘制图形并隐藏图窗口通常用于需要自动化操作或者不想打扰用户查看的场景。你可以使用`plot`、`scatter`等绘图函数生成图像,然后立即调用`close`函数关闭图形窗口,最后使用`saveas`函数将图像保存到指定位置。以下是示例:
```matlab
% 创建数据
x = 0:0.1:10;
y = sin(x);
% 绘制图形但不显示
figure; % 打开一个新的figure
h = plot(x, y); % 绘制线图
hold on; % 持续在同一窗口上添加更多图
% 关闭图形窗口但保留图数据
delete(findobj('Type', 'figure')); % 删除当前显示的figure窗口
% 保存图形为图片文件
saveas(h, 'my_plot.png', 'png'); % 将绘图保存为PNG格式
```
在这个例子中,`hold on`允许你在同一窗口上多次绘制,`delete(findobj('Type', 'figure'))`确保只关闭最后一个打开的figure窗口。如果你想保存其他类型的图形文件,只需要将`.png`替换为你想要的格式,如`.jpg`, `.eps`等。
相关问题
matlab 绘制图案到指定的figure ,不显示figure并保存
在MATLAB中,如果你想绘制图形到特定的figure而不显示它,并且保存该图,你可以按照以下步骤操作:
1. 首先,创建一个新的figure对象,如果尚未创建:
```matlab
fig = figure('Visible', 'off'); % 创建一个不可见的figure
```
这里`'Visible', 'off'`表示新创建的figure默认不会显示。
2. 然后,使用绘图函数如`plot`, `scatter`, 或 `image`等绘制所需图案:
```matlab
x = linspace(0, 2*pi, 100); % 生成数据点
y = sin(x);
plot(fig, x, y); % 在隐式figure上绘制正弦曲线
```
注意这里的`plot(fig, ...)`,`fig`是你之前创建的figure对象。
3. 完成绘制后,可以使用`saveas`函数将figure保存为图片文件,比如PNG、JPEG或EPS格式:
```matlab
saveas(fig, 'my_plot.png'); % 保存为名为'my_plot'的png文件
```
4. 最后,关闭figure并不会影响图像的保存:
```matlab
close(fig); % 关闭figure,但无需等待用户确认
```
matlab保存figure 指定大小
要想在MATLAB中保存Figure并指定大小,可以使用`print`函数。具体操作步骤如下:
1. 创建一个Figure并设置其大小和其他属性
```matlab
fig = figure;
set(fig, 'Units', 'inches', 'Position', [0, 0, 6, 4], 'PaperPositionMode', 'auto');
% 'Units'用于设置单位,'Position'用于设置Figure的位置和大小,'PaperPositionMode'用于自动缩放Figure以适应纸张大小
```
2. 绘制图形
```matlab
x = 0:0.1:2*pi;
y = sin(x);
plot(x, y);
```
3. 使用`print`函数保存Figure
```matlab
print('figure1.png', '-dpng', '-r300');
% 'figure1.png'为保存的文件名,'-dpng'表示保存为PNG格式,'-r300'表示设置分辨率为300dpi
```
注意,`print`函数必须在Figure绘制完成后调用,否则保存的文件可能为空。