source: issm/trunk/src/m/classes/public/WriteData.m@ 213

Last change on this file since 213 was 213, checked in by Mathieu Morlighem, 16 years ago

typo

File size: 1.2 KB
Line 
1function WriteData(fid,data,data_type,name)
2%WRITEDATA - ...
3%
4% Usage:
5% WriteData(fid,data,data_type)
6
7if issparse(data),
8 data=full(data);
9end
10
11%Ok! put the length of the name, and the "name" string first!
12fwrite(fid,length(name),'int');
13fwrite(fid,name,'char');
14
15if strcmpi(data_type,'String'),
16 %first write length of record
17 fwrite(fid,length(data)+4,'int'); %4 for int32
18 %now write string
19 fwrite(fid,length(data),'int');
20 fwrite(fid,data,'char');
21elseif strcmpi(data_type,'Mat'),
22 s=size(data);
23 if isnan(data),
24 s(1)=0;
25 s(2)=0;
26 end
27
28 %first write length of record
29 fwrite(fid,4+4+8*s(1)*s(2),'int'); %2 integers (32 bits) + the double matrix
30
31 %now write matrix
32 fwrite(fid,s(1),'int');
33 fwrite(fid,s(2),'int');
34 if s(1)*s(2),
35 fwrite(fid,data','double'); %get to the "c" convenction, hence the transpose
36 end
37elseif strcmpi(data_type,'Integer'),
38 %first write length of record
39 fwrite(fid,4,'int'); %1 integer
40 %now write integer
41 fwrite(fid,data,'int');
42elseif strcmpi(data_type,'Scalar'),
43 %first write length of record
44 fwrite(fid,8,'int'); %1 double
45 %now write double
46 fwrite(fid,data,'double');
47else
48 error('WriteData error message: data type not supported yet!');
49end
Note: See TracBrowser for help on using the repository browser.