在不将文件加载到内存的情况下访问和更改Mat文件中的变量
使用MAT-file对象访问和更改MAT-file中的变量,而无需将文件加载到内存中。您可以加载或保存部分变量。使用MAT-file对象部分加载和保存变量所需的内存少于负载
和保存
命令。
创建一个matObj
= matfile (文件名
)matlab.io.matfile.
连接到由此指定的MAT文件的对象文件名
.
Mat-File对象允许您直接在MAT文件中访问和更改变量,而无需将变量加载到内存中。
启用或禁用对文件的写访问权限。指定matObj
= matfile (文件名
,'可写',isWritable
)isWritable
作为真的
或者假
.
大小 |
获取mat文件中变量的数组维数
注意:不叫 |
WHO |
获取mat文件中的变量列表
|
谁 |
获取mat文件中的变量列表,包括大小和类型
|
通过索引访问Mat-Files中的变量部分时:
不支持线性索引。金宝app您必须为所有维度指定索引。
不支持将复数值分配给索引数组的索引部分。金宝app
对于Mat文件中的稀疏阵列,Mat-File对象:
金宝app支持通过索引读取稀疏数组的子集。
不支持通过索引将(金宝app将值分配值)写入稀疏阵列的子集。
MAT-file对象不支持索引到:金宝app
变量的表
细胞阵列的细胞
字符串数组
结构阵列的字段
用户定义的类
Mat-File对象不支持使用该函数处理金宝app米
输出。例如,如果你的mat文件包含函数句柄myfunc
,语法m.myfunc ()
尝试在函数句柄中建立索引,但不调用函数。
保存句柄对象时,MATLAB保存对象的副本,而不是句柄的副本。因此,通过在保存对象的工作空间中通过其句柄修改对象不会修改已保存的句柄对象。
高效的部分加载和保存需要版本7.3的mat文件。要创建7.3版本的mat文件,请调用保存
用来的功能'-v7.3'
选项。例如,要转换名为的现有MAT文件durer.mat
到版本7.3,调用:
负载(“durer.mat”);保存('mycopy_durer.mat','-v7.3');
使用结束
关键字作为索引的一部分导致MATLAB将整个变量加载到内存中。对于非常大的变量,这个加载操作将导致出去
的
内存
错误。而不是使用结束
的值确定变量的范围大小
方法:
sizeMyVar =大小(matObj,'myvar')