source: issm/oecreview/Archive/21337-21723/ISSM-21703-21704.diff

Last change on this file was 21726, checked in by Mathieu Morlighem, 8 years ago

CHG added Archive/21337-21723

File size: 1.5 KB
  • ../trunk-jpl/src/m/solve/WriteData.m

     
    173173        %Get size
    174174        s=size(data);
    175175
    176         if s(1)==1 | s(2)==1,
    177                 %No need to use Compressed format
    178                 error('Not needed (should call WriteData with DoubleMat)');
     176        if (s(1)==1 & s(2)==1 & isnan(data)),
     177                s(1)=0; s(2)=0;
    179178        end
    180179
    181180        %first write length of record
     
    191190        fwrite(fid,s(1),'int');
    192191        fwrite(fid,s(2),'int');
    193192
    194         %Write offset and range
    195         A = data(1:end-1,:);
    196         offset = min(A(:));
    197         range = max(A(:)) - offset;
    198         fwrite(fid,offset,'double');
    199         fwrite(fid,range,'double');
     193        if s(1)*s(2),
    200194
    201         %Convert data to uint8 and write it
    202         A=uint8((A-offset)/range*255);
    203         fwrite(fid,A','uint8'); %get to the "c" convention, hence the transpose
     195                %Write offset and range
     196                A = data(1:end-1,:);
     197                offset = min(A(:));
     198                range = max(A(:)) - offset;
     199                fwrite(fid,offset,'double');
     200                fwrite(fid,range,'double');
    204201
    205         %Write last row as double (time)
    206         fwrite(fid,data(end,:),'double');
     202                %Convert data to uint8 and write it
     203                A=uint8((A-offset)/range*255);
     204                fwrite(fid,A','uint8'); %get to the "c" convention, hence the transpose
     205
     206                %Write last row as double (time)
     207                fwrite(fid,data(end,:),'double');
     208        else
     209
     210                %Write empty offset and range
     211                fwrite(fid,0,'double');
     212                fwrite(fid,0,'double');
     213        end
    207214        % }}}
    208215elseif strcmpi(format,'MatArray'), % {{{
    209216
Note: See TracBrowser for help on using the repository browser.