dbarray包处理本地MATLAB数组之间的转换
数据(或字符串)及其等价的数据库表示简单的语法:
> inArray = 1:10;%做种基本MATLAB阵列(任何尺寸)
> Din = dbarray.pack(康涅狄格州inArray);%为给定的数据库
> fastinsert(康涅狄格州,myTable, {“arrayField”}, {Din}) %有效地插入
> Dout =获取(康涅狄格州,从myTable选择arrayField) %获取效率
> outArray = dbarray.unpack (Dout{1}) %解压它回到一个MATLAB数组
通常在每个字段的数据库只包含标量值。在一些
(稀有的)情况下,有利于使数组的数据在一个给定的字段。
这通常是当数据收集和没有存在
打算使用单个元素(搜索、排序等)。
例如,鉴于任务存储颜色名称及其相关
RGB值,它可能是更方便的RGB值存储在一个数组
而不是单独的字段:
__颜色__ | ______RGB______
_红色_____ | {255,0,0}
_粉红色_____ | {255192203}
___……_____ |…
MATLAB持有1×3自然这个数据数组,和一些数据库
(PostgreSQL, Oracle)等适合存储数组类型字段
数组直接。虽然可以将MATLAB数据插入
数据库使用SQL字符串:
“插入颜色(颜色、RGB)值(“红”,{255,0,0})”
,它是更有效的而不是使用MATLAB的fastinsert()和
update()函数。
fastinsert更新()不()和本地处理这些数组插入,但是
dbarray包提供了一种方便的接口来满足这种需求。
示例1 - PostgreSQL:
——PostgreSQL表创建
“创建表的颜色(颜色的文本,RGB数值数组[3])”
使用MATLAB——包装——插入数组
康涅狄格州=数据库(…你的PostgreSQL连接…)
redDb = dbarray。包(康涅狄格州(255,0,0));
pinkDb = dbarray。包(康涅狄格州(255、192、203));
fastinsert(康涅狄格州,“颜色”,{“颜色”、“RGB”}, {pinkDb“粉红色”;“红色”,redDb})
——选择并使用MATLAB解压
D =获取(康涅狄格州,从颜色选择RGB颜色=“粉红色”);
粉色= dbarray.unpack (D {1})
= (255 192 203)
注意,在上面的例子中RGB数据插入实际上是一个
嵌套的数组(1×1数组包含3×1组),而不是一个
更直接的3×1数组。为了插入n×1数组,
你应该确保你的包装是一个n×1数组的数据
(而不是RGB的1×3例)。
例2 -甲骨文:
——甲骨文类型和表创建
创建类型RGB_SET VARRAY(3)数量;
创建表的颜色(颜色VARCHAR2 (64), RGB RGB_set);
使用MATLAB——包装——插入数组
康涅狄格州=数据库(…您的Oracle连接…)
%甲骨文1-dim RGB_SET对象数组即使1×3输入给出:
redDb = dbarray。包([255 0 0],康涅狄格州,RGB_SET);
pinkDb = dbarray。包(康涅狄格州(255 192 203),“RGB_SET”);
fastinsert(康涅狄格州,“颜色”,{“颜色”、“RGB”}, {pinkDb“粉红色”;“红色”,redDb})
——选择并使用MATLAB解压
D =获取(康涅狄格州,从颜色选择RGB颜色=“粉红色”);
粉色= dbarray.unpack (D {1})
= [255;192;203]% 1-dim数组类型总是返回n×1
PostgreSQL和Oracle dbarray包测试(两个主要
数据库支持[]数组类金宝app型的对象)。其他数据库(如
MySQL)不支持本地[]金宝app数组数据类型,而是建议你
连载/ unserialise字符串来模拟数组。
引用作为
斯文(2023)。dbarray——包数据库数组matlab数组(//www.tatmou.com/matlabcentral/fileexchange/45579-dbarray-pack-and-unpack-database-arrays-to-matlab-arrays), MATLAB中央文件交换。检索。