File: tsgWriteMatrix.m

package info (click to toggle)
tasmanian 8.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,852 kB
  • sloc: cpp: 34,523; python: 7,039; f90: 5,080; makefile: 224; sh: 64; ansic: 8
file content (64 lines) | stat: -rw-r--r-- 991 bytes parent folder | download | duplicates (3)
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