nex_wf.html 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/REC-html40/loose.dtd">
  3. <html>
  4. <head>
  5. <title>Description of nex_wf</title>
  6. <meta name="keywords" content="nex_wf">
  7. <meta name="description" content="nex_wf(filename, varname): Read waveform variable from a .nex file">
  8. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  9. <meta name="generator" content="m2html &copy; 2005 Guillaume Flandin">
  10. <meta name="robots" content="index, follow">
  11. <link type="text/css" rel="stylesheet" href="../../../m2html.css">
  12. <script type="text/javascript">
  13. if (top.frames.length == 0) { top.location = "../../../index.html"; };
  14. </script>
  15. </head>
  16. <body>
  17. <a name="_top"></a>
  18. <!-- ../../menu.html chronux_2_10 --><!-- ../menu.html dataio --><!-- menu.html HowToReadNexFilesInMatlab -->
  19. <h1>nex_wf
  20. </h1>
  21. <h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
  22. <div class="box"><strong>nex_wf(filename, varname): Read waveform variable from a .nex file</strong></div>
  23. <h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
  24. <div class="box"><strong>function [adfreq, n, ts, nf, w] = nex_wf(filename, varname) </strong></div>
  25. <h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
  26. <div class="fragment"><pre class="comment"> nex_wf(filename, varname): Read waveform variable from a .nex file
  27. [adfreq, n, ts, nf, w] = nex_wf(filename, varname)
  28. INPUT:
  29. filename - if empty string, will use File Open dialog
  30. varname - variable name
  31. OUTPUT:
  32. n - number of waveforms
  33. ts - array of waveform timestamps (in seconds)
  34. nf - number of data points in each waveform
  35. w - matrix of waveform a/d values [n nf] (in millivolts)</pre></div>
  36. <!-- crossreference -->
  37. <h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
  38. This function calls:
  39. <ul style="list-style-image:url(../../../matlabicon.gif)">
  40. </ul>
  41. This function is called by:
  42. <ul style="list-style-image:url(../../../matlabicon.gif)">
  43. <li><a href="test_nex.html" class="code" title="">test_nex</a> </li></ul>
  44. <!-- crossreference -->
  45. <h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
  46. <div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function [adfreq, n, ts, nf, w] = nex_wf(filename, varname)</a>
  47. 0002 <span class="comment">% nex_wf(filename, varname): Read waveform variable from a .nex file</span>
  48. 0003 <span class="comment">%</span>
  49. 0004 <span class="comment">% [adfreq, n, ts, nf, w] = nex_wf(filename, varname)</span>
  50. 0005 <span class="comment">%</span>
  51. 0006 <span class="comment">% INPUT:</span>
  52. 0007 <span class="comment">% filename - if empty string, will use File Open dialog</span>
  53. 0008 <span class="comment">% varname - variable name</span>
  54. 0009 <span class="comment">%</span>
  55. 0010 <span class="comment">%</span>
  56. 0011 <span class="comment">% OUTPUT:</span>
  57. 0012 <span class="comment">% n - number of waveforms</span>
  58. 0013 <span class="comment">% ts - array of waveform timestamps (in seconds)</span>
  59. 0014 <span class="comment">% nf - number of data points in each waveform</span>
  60. 0015 <span class="comment">% w - matrix of waveform a/d values [n nf] (in millivolts)</span>
  61. 0016
  62. 0017 n = 0;
  63. 0018 adfreq = 0;
  64. 0019 ts = 0;
  65. 0020 nf = 0;
  66. 0021 w = 0;
  67. 0022
  68. 0023 <span class="keyword">if</span>(nargin ~= 2)
  69. 0024 disp(<span class="string">'2 input arguments are required'</span>)
  70. 0025 <span class="keyword">return</span>
  71. 0026 <span class="keyword">end</span>
  72. 0027
  73. 0028 <span class="keyword">if</span>(ischar(filename) == 0)
  74. 0029 disp(<span class="string">'input arguments should be character arrays'</span>)
  75. 0030 <span class="keyword">return</span>
  76. 0031 <span class="keyword">end</span>
  77. 0032
  78. 0033 <span class="keyword">if</span>(ischar(varname) == 0)
  79. 0034 disp(<span class="string">'input arguments should be character arrays'</span>)
  80. 0035 <span class="keyword">return</span>
  81. 0036 <span class="keyword">end</span>
  82. 0037
  83. 0038 <span class="keyword">if</span>(isempty(filename))
  84. 0039 [fname, pathname] = uigetfile(<span class="string">'*.nex'</span>, <span class="string">'Select a Nex file'</span>);
  85. 0040 filename = strcat(pathname, fname);
  86. 0041 <span class="keyword">end</span>
  87. 0042
  88. 0043 fid = fopen(filename, <span class="string">'r'</span>);
  89. 0044 <span class="keyword">if</span>(fid == 0)
  90. 0045 <span class="keyword">return</span>
  91. 0046 <span class="keyword">end</span>
  92. 0047
  93. 0048 disp(strcat(<span class="string">'file = '</span>, filename));
  94. 0049 magic = fread(fid, 1, <span class="string">'int32'</span>);
  95. 0050 version = fread(fid, 1, <span class="string">'int32'</span>);
  96. 0051 comment = fread(fid, 256, <span class="string">'char'</span>);
  97. 0052 freq = fread(fid, 1, <span class="string">'double'</span>);
  98. 0053 tbeg = fread(fid, 1, <span class="string">'int32'</span>);
  99. 0054 tend = fread(fid, 1, <span class="string">'int32'</span>);
  100. 0055 nvar = fread(fid, 1, <span class="string">'int32'</span>);
  101. 0056 fseek(fid, 260, <span class="string">'cof'</span>);
  102. 0057 name = zeros(1, 64);
  103. 0058 found = 0;
  104. 0059 <span class="keyword">for</span> i=1:nvar
  105. 0060 type = fread(fid, 1, <span class="string">'int32'</span>);
  106. 0061 var_version = fread(fid, 1, <span class="string">'int32'</span>);
  107. 0062 name = fread(fid, [1 64], <span class="string">'char'</span>);
  108. 0063 offset = fread(fid, 1, <span class="string">'int32'</span>);
  109. 0064 nf = fread(fid, 1, <span class="string">'int32'</span>);
  110. 0065 dummy = fread(fid, 32, <span class="string">'char'</span>);
  111. 0066 adfreq = fread(fid, 1, <span class="string">'double'</span>);
  112. 0067 adtomv = fread(fid, 1, <span class="string">'double'</span>);
  113. 0068 n = fread(fid, 1, <span class="string">'int32'</span>);
  114. 0069 name = char(name);
  115. 0070 name = deblank(name);
  116. 0071 k = strcmp(name, deblank(varname));
  117. 0072 <span class="keyword">if</span>(k == 1)
  118. 0073 <span class="keyword">if</span> type ~= 3
  119. 0074 disp(sprintf(<span class="string">'%s is not a waveform variable'</span>, deblank(varname)));
  120. 0075 <span class="keyword">return</span>;
  121. 0076 <span class="keyword">end</span>
  122. 0077 found = 1;
  123. 0078 fseek(fid, offset, <span class="string">'bof'</span>);
  124. 0079 ts = fread(fid, [1 nf], <span class="string">'int32'</span>);
  125. 0080 w = fread(fid, [n nf], <span class="string">'int16'</span>);
  126. 0081 <span class="keyword">break</span>
  127. 0082 <span class="keyword">end</span>
  128. 0083 dummy = fread(fid, 76, <span class="string">'char'</span>);
  129. 0084 <span class="keyword">end</span>
  130. 0085
  131. 0086 fclose(fid);
  132. 0087
  133. 0088 <span class="keyword">if</span> found == 0
  134. 0089 disp(<span class="string">'did not find variable in the file'</span>);
  135. 0090 <span class="keyword">else</span>
  136. 0091 ts = ts/freq;
  137. 0092 w = w*adtomv;
  138. 0093 disp(strcat(<span class="string">'number of waveforms = '</span>, num2str(nf)));
  139. 0094 <span class="keyword">end</span></pre></div>
  140. <hr><address>Generated on Fri 12-Aug-2011 11:36:15 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/" target="_parent">m2html</a></strong> &copy; 2005</address>
  141. </body>
  142. </html>