mat
mat 插件目前支持版本:relsease200, release130, relsease120, release110。您当前查看的插件版本为 release200,请使用 DolphinDB 2.00.X 版本 server。 DolphinDB 的 mat 插件支持读取 mat 文件的数据到 DolphinDB,或将 DolphinDB 变量写入 mat 文件,且在读取或写入时自动进行类型转换。
在插件市场安装插件
版本要求
- DolphinDB Server: 2.00.10及更高版本
- OS: Linux
安装步骤
在DolphinDB 客户端中使用 listRemotePlugins 命令查看插件仓库中的插件信息。
login("admin", "123456") listRemotePlugins()
使用 installPlugin 命令完成插件安装。
installPlugin("mat")
使用
loadPlugin
命令加载插件。loadPlugin("mat")
用户接口
mat::extractMatSchema
语法
mat::extractMatSchema(file)
详情
生成 mat 文件中指定数据集的结构。包括两列:字段名和数据类型。
参数
- file:需要读取的 mat 文件所在的绝对路径。类型为字符串。
例子
schema=mat::extractMatSchema("<FileDir>/simple.mat");
mat::loadMat
语法
mat::loadMat(file, [schema])
详情
读取一个 mat 文件。返回一个 DolphinDB 字典。
参数
- file:需要写入的 mat 文件所在的绝对路径。类型为 string。
- schema:包含列名和列的数据类型的表。若要改变由系统自动决定的列的数据类型,需要在 schema 表中修改数据类型。
返回值
返回一个字典。其 key 为变量名称,字符串类型;value 是一个矩阵或向量,为 key 指定变量对应的数据。如果一个变量是字符数组类型,对应返回值为 STRING 类型的向量。
例子
schema=mat::extractMatSchema("<FileDir>/simple.mat");
ret=loadMat("<FileDir>/simple.mat",schema);
//simple 中 t_num 变量为 double 类型的时间变量
ret=mat::convertToDatetime(ret[`t_num]);
mat::convertToDatetime
语法
mat::convertToDatetime(data)
详情
把 matlab 中以 double 储存的时间变量转换为 DolphinDB 的 DATETIME。
参数
- data:需要转换的变量。为 double 类型的 scalar, vector, matrix。
返回值
返回值是对应于参数 data 的 DATETIME 类型的 scalar, vector, matrix。
例子
schema=mat::extractMatSchema("<FileDir>/simple.mat");
ret=loadMat("<FileDir>/simple.mat",schema);
ret=mat::convertToDatetime(ret);
mat::writeMat
语法
mat::writeMat(file, varName, data)
详情
把一个矩阵写入到 mat 文件。
参数
- file:被写入文件的文件名。为 string 类型的 scalar。
- varName:data 写入文件后对应的变量名。为 string 类型的 scalar。
- data:需要写入的矩阵。可以是 bool, char, short, int, long, float, double类型。
例子
data = matrix([1, 1, 1], [2, 2, 2]).float()
mat::writeMat("var.mat", "var1", data)
支持的数据类型
整型
matlab 类型 | 对应的 DolphinDB 类型 |
---|---|
int8 | CHAR |
uint8 | SHORT |
int16 | SHORT |
uint16 | INT |
int32 | INT |
uint32 | LONG |
int64 | LONG |
uint64 | 不支持 |
- DolphinDB 中数值类型都为有符号类型,为了防止溢出,所有无符号类型会被转化为高一阶的有符号类型。例如,无符号 CHAR 转化为有符号 SHORT,无符号 SHORT 转化为有符号 INT,等等。64位无符号类型不予支持。
- DolphinDB 不支持 unsigned long long 类型,如果 matlab 中的类型为 bigint unsigned, 可在
loadMat
的 schema 参数里面设置为 DOUBLE 或者 FLOAT。 - DolphinDB 中各类整型的最小值为 NULL,如 CHAR 的-128,SHORT 的-32,768,INT 的-2,147,483,648以及 LONG 的-9,223,372,036,854,775,808。
- Matlab 中的 NaN 和 Inf 会转换为 DolphinDB 的 NULL。
浮点数类型
matlab 类型 | 对应的 DolphinDB 类型 |
---|---|
single | FLOAT |
double | DOUBLE |
字符串类型
matlab 类型 | 对应的 DolphinDB 类型 |
---|---|
character array | STRING |