100 lines
2.4 KiB
Mathematica
100 lines
2.4 KiB
Mathematica
![]() |
% Generates mat files for loadmat unit tests
|
||
|
% This is the version for matlab 5 and higher
|
||
|
% Uses save_matfile.m function
|
||
|
|
||
|
% work out matlab version and file suffix for test files
|
||
|
global FILEPREFIX FILESUFFIX
|
||
|
FILEPREFIX = [fullfile(pwd, 'data') filesep];
|
||
|
temp = ver('MATLAB');
|
||
|
mlv = temp.Version;
|
||
|
FILESUFFIX = ['_' mlv '_' computer '.mat'];
|
||
|
|
||
|
% basic double array
|
||
|
theta = 0:pi/4:2*pi;
|
||
|
save_matfile('testdouble', theta);
|
||
|
|
||
|
% string
|
||
|
save_matfile('teststring', '"Do nine men interpret?" "Nine men," I nod.')
|
||
|
|
||
|
% complex
|
||
|
save_matfile('testcomplex', cos(theta) + 1j*sin(theta));
|
||
|
|
||
|
% asymmetric array to check indexing
|
||
|
a = zeros(3, 5);
|
||
|
a(:,1) = [1:3]';
|
||
|
a(1,:) = 1:5;
|
||
|
|
||
|
% 2D matrix
|
||
|
save_matfile('testmatrix', a);
|
||
|
|
||
|
% minus number - tests signed int
|
||
|
save_matfile('testminus', -1);
|
||
|
|
||
|
% single character
|
||
|
save_matfile('testonechar', 'r');
|
||
|
|
||
|
% string array
|
||
|
save_matfile('teststringarray', ['one '; 'two '; 'three']);
|
||
|
|
||
|
% sparse array
|
||
|
save_matfile('testsparse', sparse(a));
|
||
|
|
||
|
% sparse complex array
|
||
|
b = sparse(a);
|
||
|
b(1,1) = b(1,1) + j;
|
||
|
save_matfile('testsparsecomplex', b);
|
||
|
|
||
|
% Two variables in same file
|
||
|
save([FILEPREFIX 'testmulti' FILESUFFIX], 'a', 'theta')
|
||
|
|
||
|
|
||
|
% struct
|
||
|
save_matfile('teststruct', ...
|
||
|
struct('stringfield','Rats live on no evil star.',...
|
||
|
'doublefield',[sqrt(2) exp(1) pi],...
|
||
|
'complexfield',(1+1j)*[sqrt(2) exp(1) pi]));
|
||
|
|
||
|
% cell
|
||
|
save_matfile('testcell', ...
|
||
|
{['This cell contains this string and 3 arrays of increasing' ...
|
||
|
' length'], 1., 1.:2., 1.:3.});
|
||
|
|
||
|
% scalar cell
|
||
|
save_matfile('testscalarcell', {1})
|
||
|
|
||
|
% Empty cells in two cell matrices
|
||
|
save_matfile('testemptycell', {1, 2, [], [], 3});
|
||
|
|
||
|
% 3D matrix
|
||
|
save_matfile('test3dmatrix', reshape(1:24,[2 3 4]))
|
||
|
|
||
|
% nested cell array
|
||
|
save_matfile('testcellnest', {1, {2, 3, {4, 5}}});
|
||
|
|
||
|
% nested struct
|
||
|
save_matfile('teststructnest', struct('one', 1, 'two', ...
|
||
|
struct('three', 'number 3')));
|
||
|
|
||
|
% array of struct
|
||
|
save_matfile('teststructarr', [struct('one', 1, 'two', 2) ...
|
||
|
struct('one', 'number 1', 'two', 'number 2')]);
|
||
|
|
||
|
% matlab object
|
||
|
save_matfile('testobject', inline('x'))
|
||
|
|
||
|
% array of matlab objects
|
||
|
%save_matfile('testobjarr', [inline('x') inline('x')])
|
||
|
|
||
|
% unicode test
|
||
|
if str2num(mlv) > 7 % function added 7.0.1
|
||
|
fid = fopen([FILEPREFIX 'japanese_utf8.txt']);
|
||
|
from_japan = fread(fid, 'uint8')';
|
||
|
fclose(fid);
|
||
|
save_matfile('testunicode', native2unicode(from_japan, 'utf-8'));
|
||
|
end
|
||
|
|
||
|
% func
|
||
|
if str2num(mlv) > 7 % function pointers added recently
|
||
|
func = @afunc;
|
||
|
save_matfile('testfunc', func);
|
||
|
end
|