Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
 
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 分析期间应如何存储大型MATLAB数据文件?

在MATLAB中处理点云数据时遇到“数据过载”问题。这是我目前正在做的:
  1. 我从我的原始数据文件开始,每个文件的大小约为30Mb。
  2. 然后,我对它们进行初始处理,以提取n个单个对象并删除外围点,这些外围点全部合并为1 xn结构testset ,保存到testset.mat ( testset.mat )中。

    到目前为止,一切都很好。现在事情变得复杂了:
  3. 用于在各对象的各点testset ,我将计算数的功能,其中最终被某些大小的矩阵(每个点)中的一个。矩阵的大小以及计算的其他一些属性是计算的参数。我将这些计算出的特征保存在1 xn的单元格数组中,每个单元格包含每个点的矩阵数组。

    然后,我将此单元格数组保存在.mat文件中,其中名称指定了参数,使用的测试数据的名称以及提取的特征类型。例如:

    testset_feature_type_A_5x5_0.2x0.2_alpha_3_beta_4.mat
  4. 现在,对于每个文件,我都会做一些进一步的处理(使用分类算法)。同样,还有更多参数需要设置。
因此,现在我处在一个棘手的情况下,每个初始数据的最后每条都经过某个路径,但是所采用的路径(以及沿该路径设置的参数)并没有与数据本身固有地保持在一起。

所以我的问题是:

有一个更好的方法吗?谁有在MATLAB中处理大型数据集的经验,可以提出一种更有效,更完整地存储数据和参数设置的方法吗?

理想情况下,我可以查找某些数据,而不必在文件字符串上使用正则表达式。但是,这样做还有一个动机,就是将单独处理的文件分开保存,以在加载文件时节省系统内存(并有助于防止腐败)。

每次计算所花费的时间(约2个小时)禁止“即时”计算数据。



回答:

对于类似的问题,我创建了一个执行以下操作的类结构:
  • 每个对象都链接到原始数据文件
  • 对于每个处理步骤,都有一个属性
  • 属性的set方法将数据保存到文件(与原始数据文件同名的目录中),存储文件名,并更新“ status”属性以指示此步骤已完成。
  • 如果已存储文件名并且状态指示为“完成”,则属性的get方法将加载数据。
  • 最后,可以保存/加载对象,这样我就可以立即进行一些处理,保存对象,然后再加载它,并且我立即知道特定数据集在处理管道中的距离。
因此,内存中唯一的数据就是当前正在处理的数据,您可以轻松地知道哪个数据集处于哪个处理阶段。此外,如果将方法设置为接受对象数组,则可以进行非常方便的批处理。



更多&回答...
poster 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 02:53


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.