点击上方“阿昆的科研日常”,关注我的公众号。
添加微信:akunscience28 备注:福利
领取一份《科研福利包》
最近帮几个亲朋好友整理博士毕业论文。
期间,我观察了他们的行为模式,发现其将大量的时间,不同程度地浪费在一些机械、重复性劳动上,导致效率低下。
博士尚且如此,想必还有很多人也深受其扰。
作为一个专业摸鱼人,在我看来,凡是有规律的重复工作,理论上都可以通过机器搞定。
子曰,有鱼一起摸,不亦说乎?
本期分享如何通过Matlab批量读取txt数据并将其可视化:
值得一提的是,本期的重点在于批量读取txt数据,可视化仅为读取数据后的一种应用。
数据格式如图所示:
通过‘dir’命令列出所需路径下所有txt文件:
file_read=dir('D:\no_low-high_outliers\*.txt');
利用‘load’命令读取数据:
A = load(strcat('D:\no_low-high_outliers\',filenames{ii}));
并通过‘scatter3’绘制特征渲染三维散点图:
scatter3(A(:,1),A(:,2),A(:,3),5,A(:,3),'filled')
完整代码如下:
%% 列出文件夹对应内容
file_read=dir('D:\no_low-high_outliers\*.txt');
filenames={file_read.name}';
file_length=length(file_read);
%% 批量读取并可视化数据
% 图片尺寸设置(单位:厘米)
figureUnits = 'centimeters';
figureWidth = 20;
figureHeight = 16;
% 窗口设置
figureHandle = figure('Color','w');
set(gcf, 'Units', figureUnits, 'Position', [0 0 figureWidth figureHeight]);
% 绘制
t = tiledlayout(3,3);
for ii = 1:file_length
A = load(strcat('D:\no_low-high_outliers\',filenames{ii}));
M = size(A,1);
w = sum(A(:,1:3))/M;
A(:,1:3) = A(:,1:3) - w;
nexttile(ii)
scatter3(A(:,1),A(:,2),A(:,3),5,A(:,3),'filled')
title(filenames{ii})
end
t.TileSpacing = 'compact';
t.Padding = 'compact';
%% 图片输出
figW = figureWidth;
figH = figureHeight;
set(figureHandle,'PaperUnits',figureUnits);
set(figureHandle,'PaperPosition',[0 0 figW figH]);
fileout = 'test';
print(figureHandle,[fileout,'.png'],'-r300','-dpng');
以上。
如果你觉得我的分享对你有帮助的话,欢迎大家在这里点赞、在看、分享。当然,也欢迎大家在这里打赏。互动越多,更新越快哦~
声明:本公众号的所有原创内容,在未经允许的情况下,不得用于任何商业用途,违者必究。