Matlab小技巧
根据文件修改时间进行排序
在 MATLAB 中,您可以使用 dir
函数获取文件的列表,并包含它们的元数据,如文件名、文件大小、修改日期等。获取到这些信息后,您可以使用 datetime
函数将日期字符串转换为 datetime
对象,然后使用这些对象对 fileList
进行排序。这里是一个按日期排序文件列表的例子:
% 获取文件夹中的所有.srd文件
fileList = dir(fullfile('file_path', '*.srd'));
% 将日期转换为datetime对象
dates = datetime({fileList.date});
% 获取排序的索引(按日期)
[~,sortedIndex] = sort(dates);
% 使用排序的索引来排序fileList
sortedFileList = fileList(sortedIndex);
上面的代码首先使用 dir
函数获取特定文件夹中所有 .srd
文件的列表。然后,它将这些文件的日期转换为 datetime
对象数组。接下来,sort
函数用来获取按日期排序的索引,这些索引随后用于对原始 fileList
数组进行排序,得到 sortedFileList
。
最后,sortedFileList
将是一个包含按日期排序的文件的数组,您可以按照您的需要使用这个排序后的列表。
保存画图为图片
- savefig()函数
保存为.fig
文件 - saveas(gcf, 'myfigure.png');
保存为其它格式的文件 - print('myfigure','-dpng');
保存和复制绘图时保留最少的空白
摘录自:保存和复制绘图时保留最少的空白 - MATLAB & Simulink (mathworks.com)
在保存或复制绘图内容时,使空白最小化的方法之一是使用坐标区工具栏,将鼠标悬停在坐标区右上角时会出现该工具栏。另一种方法是使用 exportgraphics
和 copygraphics
函数,它们具有更大的灵活性。
注意
以下示例使用了 R2020a 中新增的 exportgraphics
和 copygraphics
函数。如果您使用的是较早的版本,请参阅保存绘图时保留最少的空白 (19b)。
保存或复制单一绘图
使用标题和颜色栏创建 peaks
函数的等高线图。
contour(peaks)
colorbar
title('Peaks Function')
将鼠标悬停在坐标区工具栏中的导出按钮 上并选择下拉列表中的第一项,将绘图保存到文件。如果要将绘图的内容复制到剪贴板,请选择下拉列表中的第二项或第三项。第二项将内容复制为图像,第三项将内容复制为向量图形。保存或复制的内容将围绕标题、坐标区和颜色栏精确裁剪。
也可以使用 exportgraphics
函数保存内容,此函数从 R2020a 开始提供。此函数围绕您的内容提供相同的精确裁剪,还提供了其他选项。例如,您可以保存图像文件并指定分辨率。
ax = gca;
% Requires R2020a or later
exportgraphics(ax,'myplot.png','Resolution',300)
copygraphics
函数提供了将内容复制到剪贴板的类似功能。
ax = gca;
% Requires R2020a or later
copygraphics(ax,'Resolution',300)
保存或复制图窗中的多个绘图
从 R2019b 开始,您可以使用 tiledlayout
函数在图窗中创建分块图。该函数具有用于最小化绘图周围空间的选项。(如果您使用的是较早的版本,您可以使用 subplot
函数来创建分块图。不过,subplot
函数没有用于控制绘图周围空间的选项。)
通过调用 tiledlayout
函数,创建一个 2×2 分块图布局。要最小化绘图之间的空间,请将 'TileSpacing'
名称-值对组参数设置为 'compact'
。要使布局周围的空间最小化,请将 'Padding'
名称-值对组参数设置为 'compact'
。下一步,调用 nexttile
函数创建第一个坐标区,并调用 plot
函数在坐标区中绘图。然后再创建三个坐标区和绘图。
% Requires R2019b or later
t = tiledlayout(2,2,'TileSpacing','Compact','Padding','Compact');
nexttile
plot([0 1])
nexttile
plot([1 0])
nexttile
plot([0 1 0 1])
nexttile
plot([1 0 1 0])
通过将分块图布局 (t
) 传递给 exportgraphics
函数,将布局另存为 PDF 文件。在本例中,使用透明背景保存 PDF。
% Requires R2020a or later
exportgraphics(t,'fourplots.pdf','BackgroundColor','none')
也可以使用 copygraphics
函数,将布局复制到剪贴板。
% Requires R2020a or later
copygraphics(t,'BackgroundColor','none')
保存图片只保留数据图区域,不包括坐标轴等信息
通过以下命令关闭坐标轴、颜色栏等显示信息,并保存图片呢
% 关闭坐标轴的显示
axis off;
% 关闭颜色栏
colorbar off;
ax = gca;
% Requires R2020a or later
copygraphics(ax,'Resolution',300)