mayostruc.m 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. function o = mayostruc
  2. % Create a data structure describing Analyze headers
  3. %__________________________________________________________________________
  4. % Copyright (C) 2005-2017 Wellcome Trust Centre for Neuroimaging
  5. %
  6. % $Id: mayostruc.m 7147 2017-08-03 14:07:01Z spm $
  7. persistent org;
  8. if ~isempty(org)
  9. o = org;
  10. return;
  11. end
  12. t = struct('conv',{ @char, @int16, @int32, @single },...
  13. 'prec',{'uint8','int16','int32','single'},...
  14. 'size',{ 1, 2, 4, 4});
  15. c = t(1);
  16. s = t(2);
  17. i = t(3);
  18. f = t(4);
  19. table = {...
  20. i, 1,'sizeof_hdr',348
  21. c,10,'data_type',[]
  22. c,18,'db_name',[]
  23. i, 1,'extents',[]
  24. s, 1,'session_error',[]
  25. c, 1,'regular','r'
  26. c, 1,'hkey_un0',[]
  27. s, 8,'dim',[3 1 1 1 1 1 1 1 1]
  28. c, 4,'vox_units',[]
  29. c, 8,'cal_units',[]
  30. s, 1,'unused1',[]
  31. s, 1,'datatype',[]
  32. s, 1,'bitpix',[]
  33. s, 1,'dim_un0',[]
  34. f, 8,'pixdim',[]
  35. f, 1,'vox_offset',0
  36. f, 1,'roi_scale',1
  37. f, 1,'funused1',0
  38. f, 1,'funused2',[]
  39. f, 1,'cal_max',[]
  40. f, 1,'cal_min',[]
  41. i, 1,'compressed',[]
  42. i, 1,'verified',[]
  43. i, 1,'glmax',[]
  44. i, 1,'glmin',[]
  45. c,80,'descrip','Analyze Image'
  46. c,24,'aux_file',''
  47. c, 1,'orient',[]
  48. % c,10,'originator',[]
  49. s, 5,'origin',[] % SPM version
  50. c,10,'generated',[]
  51. c,10,'scannum',[]
  52. c,10,'patient_id',[]
  53. c,10,'exp_date',[]
  54. c,10,'exp_time',[]
  55. c, 3,'hist_un0',[]
  56. i, 1,'views',[]
  57. i, 1,'vols_added',[]
  58. i, 1,'start_field',[]
  59. i, 1,'field_skip',[]
  60. i, 1,'omax',[]
  61. i, 1,'omin',[]
  62. i, 1,'smax',[]
  63. i, 1,'smin',[]};
  64. org = struct('label',table(:,3),'dtype',table(:,1),'len',table(:,2),...
  65. 'offset',0,'def',table(:,4));
  66. os = 0;
  67. for j=1:length(org)
  68. os = os + org(j).dtype.size*ceil(os/org(j).dtype.size);
  69. fun = org(j).dtype.conv;
  70. def = [org(j).def zeros(1,org(j).len-length(org(j).def))];
  71. org(j).def = feval(fun,def);
  72. org(j).offset = os;
  73. os = os + org(j).len*org(j).dtype.size;
  74. end
  75. o = org;