1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
function tsgWriteMatrix(filename, mat)
%
% tsgWriteMatrix(filename, mat)
%
% write a matrix to a text file
%
% the matrix [1 2 3 4; 5 6 7 8; 9 10 11 12;]
%
% is written as
%
% 3 4
% 1 2 3 4
% 5 6 7 8
% 9 10 11 12
%
filename = regexprep(filename, '\\ ', ' ');
if (prod(size(mat)) < 1000) % small matrix, use ascii format
fid = fopen(filename, 'w');
fprintf(fid, '%d %d\n', size(mat, 1), size(mat, 2)); % load the number of points
%format long;
Ni = size(mat, 1);
Nj = size(mat, 2);
fmt = [''];
for i = 1:Nj
fmt = [fmt, '%2.20e '];
end
fmt = [fmt(1:end-1), '\n'];
for i = 1:Ni
fprintf(fid, fmt, mat(i,:));
end
fclose(fid);
else
fid = fopen(filename, 'wb');
Ni = size(mat, 1);
Nj = size(mat, 2);
fwrite(fid, ['TSG']);
fwrite(fid, [Ni, Nj], 'integer*4');
fwrite(fid, mat', 'double');
%if (size(mat, 1) > 10)
% size(mat)
% mat(1:10, :)
%end
fclose(fid);
end
end
|