nex_info.m 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. function [nvar, names, types] = nex_info(filename)
  2. % nex_info(filename) -- read and display .nex file info
  3. %
  4. % [nvar, names, types] = nex_info(filename)
  5. %
  6. % INPUT:
  7. % filename - if empty string, will use File Open dialog
  8. % OUTPUT:
  9. % nvar - number of variables in the file
  10. % names - [nvar 64] array of variable names
  11. % types - [1 nvar] array of variable types
  12. % Interpretation of type values: 0-neuron, 1-event, 2-interval, 3-waveform,
  13. % 4-population vector, 5-continuous variable, 6 - marker
  14. if(nargin ~= 1)
  15. disp('1 input arguments are required')
  16. return
  17. end
  18. if(isempty(filename))
  19. [fname, pathname] = uigetfile('*.nex', 'Select a Nex file');
  20. filename = strcat(pathname, fname);
  21. end
  22. fid = fopen(filename, 'r');
  23. if(fid == -1)
  24. disp('cannot open file');
  25. return
  26. end
  27. disp(strcat('file = ', filename));
  28. magic = fread(fid, 1, 'int32');
  29. version = fread(fid, 1, 'int32');
  30. comment = fread(fid, 256, 'char');
  31. freq = fread(fid, 1, 'double');
  32. tbeg = fread(fid, 1, 'int32');
  33. tend = fread(fid, 1, 'int32');
  34. nvar = fread(fid, 1, 'int32');
  35. fseek(fid, 260, 'cof');
  36. disp(strcat('version = ', num2str(version)));
  37. disp(strcat('frequency = ', num2str(freq)));
  38. disp(strcat('duration (sec) = ', num2str((tend - tbeg)/freq)));
  39. disp(strcat('number of variables = ', num2str(nvar)));
  40. names = zeros(1, 64);
  41. types=zeros(nvar);
  42. for i=1:nvar
  43. types(i) = fread(fid, 1, 'int32');
  44. var_version = fread(fid, 1, 'int32');
  45. names(i, :) = fread(fid, [1 64], 'char');
  46. dummy = fread(fid, 128+8, 'char');
  47. end
  48. names = char(names);
  49. fclose(fid);