图像缩略图

dbarray-将数据库数组打包并解包为matlab数组

版本1.1.0.0(7.15KB)由 斯文
dbarray允许您直接将数组[]类型的数据库字段发送/获取到本机MATLAB变量中

583下载

更新2014年3月7日

查看许可证

dbarray包处理本机MATLAB数组之间的转换
数据(或字符串)及其等效数据库表示形式,语法简单:
>inArray=1:10;%制作一个非标量MATLAB数组(任意维)
>Din=dbarray.pack(inArray,conn);%为给定数据库打包
>fastinsert(conn,'myTable',{'arrayField'},{Din})%有效地插入它
>Dout=fetch(conn,'select arrayField from myTable')%fetch
>outArray=dbarray.unpack(Dout{1})%unpack返回到MATLAB数组

通常数据库在每个字段中只包含标量值
(罕见)在给定字段中允许数据数组是有利的。
这通常是当数据作为集合存在且没有
使用单个元素的意图(用于搜索、排序等)。

例如,给定存储颜色名称及其关联属性的任务
RGB值,将RGB值存储在数组中可能更方便
而不是单独的字段:

__彩色RGB______
_红色{255,0,0}
_粉红色{255192203}
___ ... _____| ...

MATLAB自然地将这些数据保存在1×3数组和一些数据库中
(PostgreSQL、Oracle)具有适合存储此类数据的数组类型字段
直接数组。虽然可以将MATLAB数据插入此类
使用SQL字符串的数据库:
“插入颜色(颜色,RGB)值('Red',{255,0,0})”
,使用MATLAB的fastinsert()和
update()函数。

fastinsert()和update()不会以本机方式处理这些数组插入,但是
dbarray包提供了一个方便的接口来满足这一需求。

示例1-PostgreSQL:
--PostgreSQL表创建--
创建表格颜色(彩色文本、RGB数字数组[3])
--基于MATLAB的插入压缩阵列--
conn=数据库(…您的PostgreSQL连接…)
redDb=dbarray.pack([255,0,0],conn);
pinkDb=dbarray.pack([255192203],康涅狄格州);
fastinsert(conn,'colors',{'color','RGB'},{'Pink',pinkDb;'Red',redDb})
--使用MATLAB进行选择和解包--
D=获取(conn,'从颜色中选择RGB,其中颜色='粉色');
pink=dbarray.unpack(D{1})
= [ 255 192 203 ]

请注意,在上面的示例中,插入的RGB数据实际上是
嵌套数组(包含3×1数组的1×1数组)而不是
更直观的3×1数组。为了插入N×1数组,
您应该确保要打包的数据是一个N×1数组
(而不是我们的RGB示例中的1乘3)。

示例2-Oracle:
--Oracle类型和表创建--
创建类型RGB_,设置为数字的VARRAY(3);
创建表格颜色(颜色VARCHAR2(64),RGB RGB_集);
--基于MATLAB的插入压缩阵列--
conn=数据库(…您的Oracle连接…)
%Oracle RGB_集对象是一维数组,即使给定1×3输入:
redDb=dbarray.pack([255 0],conn,'RGB_SET');
pinkDb=dbarray.pack([255 192 203],conn,'RGB_SET');
fastinsert(conn,'colors',{'color','RGB'},{'Pink',pinkDb;'Red',redDb})
--使用MATLAB进行选择和解包--
D=获取(conn,'从颜色中选择RGB,其中颜色='粉色');
pink=dbarray.unpack(D{1})
=[255;192;203]%1-dim数组类型始终以N-x-1的形式返回

dbarray包已针对PostgreSQL和Oracle(两个主要版本)进行了测试
支持数组[]类型对象万博1manbetx的数据库)。其他数据库(例如
MySQL)不支持本机数组万博1manbetx[]数据类型,而是建议您
序列化/取消序列化字符串以模拟数组。

引用为

斯文(2021年)。dbarray-将数据库数组打包并解包为matlab数组(//www.tianjin-qmedu.com/matlabcentral/fileexchange/45579-dbarray-pack-and-unpack-database-arrays-to-matlab-arrays),MATLAB中心文件交换.

MATLAB版本兼容性
使用R2013b创建
与任何版本兼容
平台兼容性
窗户 马科斯 Linux

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始打猎吧!