Code covered by the BSD License  

Highlights from
VVAR class: a fast "virtual" variable class for MATLAB.

Be the first to rate this file! 15 Downloads (last 30 days) File Size: 7.12 KB File ID: #34276

VVAR class: a fast "virtual" variable class for MATLAB.

by

 

20 Dec 2011 (Updated )

VVAR can be used to pre-allocate arrays much faster than using zeros

| Watch this File

File Information
Description

VVAR uses a pre-existing "scratch" file to store variables and can be used to pre-allocate a huge array much faster than using zeros. On a MacBook Pro with 64 bit MATLAB and 4Gb RAM, creating an 8Gb double array with VVAR was 100x faster than using zeros (1.24s vs 122.3s).
    
Upper limits on array size are system and MATLAB version dependent. See the MATLAB documenation.

Note that speed improvements are seen only when the array is too large for the available memory and forces virtual memory use.

With some caveats, VVAR instances can be used in much the same way as MATLAB primitive array types, e.g.
x=VVAR(10000,10000)
% x curently contains garbage (not zeros) so
%...
%... fill x with data ...
%...
% Then filter each column e.g.:
for k=1:size(x,2)
   x(:,k)=filtfilt(b, a, x(:,k));
end

A VVAR instance is simply a wrapper for the standard MATLAB memmapfile class that uses "nakhur" techniques to trick MATLAB into believing the VVAR instance is a MATLAB numeric matrix. This is achieved by having standard MATLAB methods return non-standard results. Effectively, the VVAR class instance pretends to be the primitive data that it represents so that the methods return results relevant to the contents of the instance not the instance itself e.g. with the instance above, isreal(x) returns true while size(x) returns [10000,10000]. Numel is not overloaded so numel(x) returns 1.
    
VVAR supports the full range of indexing options: subreferencing, linear and logical indexing etc.

Part of Project Waterloo from King's College London - see http://sigtool.sourceforge.net/

MATLAB release MATLAB 7.6 (R2008a)
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Updates
21 Dec 2011

Minor improvements

Contact us