在mysql数据库存储.mat文件

31日视图(30天)
Gurvinder
Gurvinder 2013年8月6日
回答: 西蒙2023年5月13日
你好,我有一个数据库中存储一定的信息,但是我想存储整个.mat文件相关数据。主要为目的如果进一步分析需要的数据集在晚些时候。
我见过一些研究期刊的人这样做,希望如果有人能请告诉我正确的方向。
通知你运行matlab 7.6.0 (R2008a)和query builder不是为我工作:(

接受的答案

Darik
Darik 2013年8月8日
如果你必须这样做,你可以创建一个BLOB列在数据库表中,然后在matlab使用fread函数获取垫文件作为原始二进制数据,然后再插入到数据库中。拿回的数据,你就会写入文件的二进制数据到磁盘,并使用matlab函数读取它加载到。
整个计划的巨大的缺点当然是你无法在matfile查询的数据,这通常是整个原因在关系数据库中存储的东西放在第一位。

更多的答案(2)

沙Prasanna
沙Prasanna 2013年8月6日
由于MATLAB支持很多不金宝app同类型的数据,你会将它加载到MATLAB首先之前它到一个数据库中。
你可以通过一些示例数据库中的工具箱:
看看一些完整的示例工作流了解如何插入数据到一个表。
2的评论
沙Prasanna
沙Prasanna 2013年8月8日
垫文件是非常通用的数据容器所以我不能回答你的问题一个是或否。这取决于你有什么数据在你的垫子文件我已经提到过。
您可以简单地编写一个函数或脚本一次加载matfile和写数据到指定的数据库中。然后你需要做的就是再次调用该函数。否则请明确您的工作流到底是什么。

登录置评。


西蒙
西蒙 2023年5月13日
在我自己的经验,我已经尝试了三种不同的方法来存储在MySQL表。我还用工作台为MySQL命令(UI)微调变量类型和数据的快速选择和目视检查。
我建议你restructurd .mat数据表。表保存到MySQL(和其他数据库)就更简单了。
方法。)当表有不到19000行,sqlwrite(康涅狄格州,表名,tabledata)。新行数据,sqlwrite()将自动添加到现有的MySQL表。
方法二。)MySQL有问题似乎一次插入多行。所以当我的代码会产生很高的表,我将运行for-looop talll表。然后我运行一个单独的for循环来sqlwrite()块的表行。
方法3)。我也试过在切片sqlwrite()将导致每一步保存在一个for循环绕过归宿高表。例如,如果你想和合并许多文件转换成一个巨大的表,你可以这样做:
文件= 1:数量的文件
我们应该=转换文件();
数据行到一个表T。
sqlwrite(康涅狄格州SQLtablename, T)
结束
- - - - - -
目前,我使用方法2,因为它允许我使用parfor,快得多:
parfor i = 1:文件的数量
我们应该....
T = vertcat(我们)做成一个表
结束
接下来,我将运行一个单独的for循环来保存sql。
行= 1:行
有软木=块的行
sqlwrite(康涅狄格州SQLtablename,软木)
结束
- - - - - - - - - - - -
这些只是我的个人经历学会了通过努力buntch sql的东西。希望这对你可能有用。

下载188bet金宝搏

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!