changeset 645:cc81e4acc53c

analyze75write: Now write int16 and int32 datasets correctly.
author adam78a
date Wed, 03 Oct 2012 16:53:13 +0000
parents 83c31ccc0da4
children 051cf5393bbf
files inst/analyze75write.m
diffstat 1 files changed, 9 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/inst/analyze75write.m
+++ b/inst/analyze75write.m
@@ -107,11 +107,16 @@
   header.Descriptor(1:numel(origintext)) = origintext;
 
   % Determine the type of data
-  if (isa(data,'short'))
+  if (isa(data,'int16'))
     header.ImgDataType = 'DT_SIGNED_SHORT';
     header.BitDepth    = int16(16);
-    DataTypeLabel      = int16(0);
-    DataTypeString     = 'short';
+    DataTypeLabel      = int16(4);
+    DataTypeString     = 'int16';
+  elseif isa(dataIN,'int32')
+    header.ImgDataType = 'DT_SIGNED_INT';
+    header.BitDepth    = int16(32);
+    DataTypeLabel      = int16(8);
+    DataTypeString     = 'int32';
   elseif (isa(data,'single'))
     header.ImgDataType = 'DT_FLOAT';
     header.BitDepth    = int16(32);
@@ -210,7 +215,7 @@
 
 function [datanew,znew] = interpslices(data,x,y,z)
   znew = z(1):min(diff(z)):z(end);
-  datanew = zeros(numel(x),numel(y),numel(znew),'single');
+  datanew = zeros(numel(x),numel(y),numel(znew),class(data));
   for loopN = 1:numel(znew)
     datanew(:,:,loopN) = interpn(x,y,z,data,x,y,znew(loopN));
   end