Code covered by the BSD License  

Highlights from
mapping files into working memory

from mapping files into working memory by David Omer
mapping large file resident matrices directly into the working memory of matlab

MemMapBin(filename,writable)
function hData = MemMapBin(filename,writable)

% syntax : hData = MemMapDataFile(filename,writePermit);
% writePermit = true or false (scalar logical);
%
%
%David B. Omer (c) sept 2006

[flag,hl,mat] = ReadExperimentDataStructureHeader(filename);
if(flag)
     
          
    for i=1:length(mat)
        if (i==1),formt = {'double' [mat(1).col mat(1).raw] mat(1).name};
        else formt = [formt;{'double' [mat(i).col mat(i).raw] mat(i).name}];
        end
    end
    
  
   hData = memmapfile(filename,'offset',hl,'format',formt,'repeat',1,'Writable', writable);
end

function [flag,hl,mat] = ReadExperimentDataStructureHeader(filename)

% syntax : [flag,header] = ReadExperimentDataStructureHeader(filename)
%
% reads the header of the new experiment binary files.  
%
% David B. Omer (c) may 2006
%

flag =1;
fid = fopen(filename,'r','ieee-le');

if(fid)
    hl =fread(fid,1,'int32');
    matnum =fread(fid,1,'int32');
    
    for j=1:matnum
        mat(j).name = fread(fid,fread(fid,1,'int32'),'*char')';
        mat(j).col = fread(fid,1,'int32');
        mat(j).raw = fread(fid,1,'int32');
    end
        
    fclose(fid);
else
    disp('can not open file...');
    flag =0;
end

Contact us at files@mathworks.com