我如何为位于MATLAB之外的文件夹中的每个多个.mat文件绘制直方图?

13次意见(过去30天)
我是第一次使用MATLAB来分析和可视化许多单独的数据文件。
情况是这样 :我有多个(20+,但肯定可以扩展到50-60+范围).mat文件,这些文件通常(但不总是)以1024x1024矩阵的形式。这些.mat文件自动放置在MATLAB外部的文件夹中(文件夹的位置在单独的脚本中指定为保存文件路径)。这些代码中的每一个都共享一个共同的命名标记(即。可用于轻松识别目标.mat文件的标识文本)。
我想能够产生一个可重用的代码,可以采取所有选定的.mat文件在该文件路径,并同时为每个.mat产生一个直方图。矩阵的值可以不同,所以我不想对轴或行/列进行任何限制。
目前我得到的代码如下:
清晰的所有
下面的代码指定了我电脑上的文件路径,上面说的.mat文件所在的位置
目录=' /用户/名称/桌面/ selectedmatricies / '
Realdata = dir(目录);
MATLAB版本:9.7.0.1261785 (R2019b)更新3
我不确定接下来该怎么做,甚至不知道我上面列出的代码是否真的需要。我确实怀疑for循环会在生成的代码中发挥作用,但我不知道如何构造它。
我在MathWorks中搜索了之前遇到的与我的困境类似的问题,但我的努力是徒劳的。我非常愿意接受社区提供的任何想法或代码!非常感谢大家!
TLDR;我想在外部文件夹中使用多个.mat文件,并通过MATLAB代码运行它们,以生成每个文件的直方图

接受的答案

凯文·霍利"class=
凯文·霍利 2021年9月29日
编辑:凯文·霍利 2021年9月29日
这里有一个你可以使用的方法:
目录=' /用户/名称/桌面/ selectedmatricies / '或者,可以使用:directory = uigetdir()
= dir (fullfile(文件目录,‘* .mat‘));这将获取目录中的所有.mat文件。*是一个变数
save_directory = uigetdir (“C: \”);%要保存直方图的位置
让我们分析每个文件
I = 1:长度(files)
矩阵= load([文件(i).folder,filesep,文件(i).name],“垫”);
直方图(矩阵)
包含(“X”标签
ylabel (“Y”标签
标题(“标题”
saveas (gcf [save_directory、filesep strrep(文件(我). name,“.mat”“.fig”)),“图”);%保存图形(也可以保存为图像(例如。png或。tif))
如果您想保存带有单词直方图的图形,可以使用下面的行
% saveas (gcf [save_directory、filesep strrep(文件(i) . name、“.mat”、“_histogram.fig”)],“无花果”);%保存图
结束
17日评论
鲍比"class=
鲍比 2021年9月29日
@Kevin冬青 而且 @Image分析师 ,谢谢你在这个问题上一直支持我,并提供专业的建议!从您的指导和专业知识,我能够找出代码,将能够与我目前的脚本工作!非常感谢二位!

登录评论。

更多答案(1)

图像分析"class=
图像分析 2021年9月29日
这个问题的答案和其他很多好东西可以在FAQ中找到:
1评论
鲍比"class=
鲍比 2021年9月29日
谢谢你!我看到第一个例子将是最相关的,但我如何改变代码分析。mat文件成直方图,而不是它分析一组。png文件,如在例子中所见?代码还是一样的吗?

登录评论。

类别

了解更多大文件和大数据帮助中心而且文件交换

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!