Index: ../trunk-jpl/src/m/solve/WriteData.m =================================================================== --- ../trunk-jpl/src/m/solve/WriteData.m (revision 21703) +++ ../trunk-jpl/src/m/solve/WriteData.m (revision 21704) @@ -173,9 +173,8 @@ %Get size s=size(data); - if s(1)==1 | s(2)==1, - %No need to use Compressed format - error('Not needed (should call WriteData with DoubleMat)'); + if (s(1)==1 & s(2)==1 & isnan(data)), + s(1)=0; s(2)=0; end %first write length of record @@ -191,19 +190,27 @@ fwrite(fid,s(1),'int'); fwrite(fid,s(2),'int'); - %Write offset and range - A = data(1:end-1,:); - offset = min(A(:)); - range = max(A(:)) - offset; - fwrite(fid,offset,'double'); - fwrite(fid,range,'double'); + if s(1)*s(2), - %Convert data to uint8 and write it - A=uint8((A-offset)/range*255); - fwrite(fid,A','uint8'); %get to the "c" convention, hence the transpose + %Write offset and range + A = data(1:end-1,:); + offset = min(A(:)); + range = max(A(:)) - offset; + fwrite(fid,offset,'double'); + fwrite(fid,range,'double'); - %Write last row as double (time) - fwrite(fid,data(end,:),'double'); + %Convert data to uint8 and write it + A=uint8((A-offset)/range*255); + fwrite(fid,A','uint8'); %get to the "c" convention, hence the transpose + + %Write last row as double (time) + fwrite(fid,data(end,:),'double'); + else + + %Write empty offset and range + fwrite(fid,0,'double'); + fwrite(fid,0,'double'); + end % }}} elseif strcmpi(format,'MatArray'), % {{{