Matlab大数据处理2:硬盘访问.mat文件
分类:Matlab Hack2013-09-08 20:16 146人阅读评论(0) 收藏举报Matlab程序中经常要访问.mat文件,通常在作法是用load函数直接加载.mat文件。
如果.mat文件非常大,超过了系统可用内存的时候该怎么办呢?Matlab2013b为提供了matfile函数,matfile函数可以通过索引直接访问.mat文件中的Matlab变量,而无需将.mat文件加载入内存。
matfile有两种用法:
m = matfile(filename),用文件名创建matfile对象,通过这个对象可以直接访问mat文件中的matlab变量。
m = matfile(filename,'Writable',isWritable),isWritable开启或关闭文件写操作。
使用示例:
1. 向mat文件中写入变量
x = magic(20);
m = matfile('myFile.mat'); % 创建一个指向myFile.mat的matfile对象
m.x = x; % 写入x
m.y(81:100,81:100) = magic(20); % 使用坐标索引
2. 加载变量
filename = 'topography.mat';
m = matfile(filename);
topo = m.topo; %读取变量topo
[nrows,ncols] = size(m,'stocks'); %读取stocks变量的size avgs = zeros(1,ncols);
for idx = 1:ncols
avgs(idx) = mean(m.stocks(:,idx));
end
3. 开启写权限
filename = 'myFile.mat';
m = matfile(filename,'Writable',true);
或者
m.Properties.Writable = true;。