📄 cntopen.m
字号:
function [CNT,h,e]=cntopen(arg1,PERMISSION,CHAN,arg4,arg5,arg6)
% CNTOPEN opens neuroscan files (but does not read the data).
% However, it is recommended to use SOPEN instead of CNTOPEN.
% For loading whole Neuroscan data files, use SLOAD.
%
% see also: SLOAD, SOPEN, SREAD, SCLOSE, SEOF, STELL, SSEEK.
% HDR=cntopen(Filename, PERMISSION, [, ChanList ]);
%
% FILENAME
% PERMISSION is one of the following strings
% 'rb' read
% ChanList (List of) Channel(s)
% default=0: loads all channels
% $Revision: 1.27 $
% $Id: cntopen.m,v 1.27 2004/04/15 17:28:56 schloegl Exp $
% Copyright (C) 1997-2003 by Alois Schloegl
% a.schloegl@ieee.org
% This program is free software; you can redistribute it and/or
% modify it under the terms of the GNU General Public License
% as published by the Free Software Foundation; either version 2
% of the License, or (at your option) any later version.
%
% This program is distributed in the hope that it will be useful,
% but WITHOUT ANY WARRANTY; without even the implied warranty of
% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
% GNU General Public License for more details.
%
% You should have received a copy of the GNU General Public License
% along with this program; if not, write to the Free Software
% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
if nargin<2,
PERMISSION='rb';
elseif ~any(PERMISSION=='b');
PERMISSION = [PERMISSION,'b']; % force binary open.
end;
if nargin<3, CHAN=0; end;
if isstruct(arg1),
CNT=arg1;
if CNT.FILE.OPEN,
status=fseek(CNT.FILE.FID,0,'bof');
if status,
fprintf(CNT.FILE.stderr,'Warning CNTOPEN: I/O error in file %s\n',CNT.FileName);
end;
else
CNT.FILE.FID = fopen(CNT.FileName,PERMISSION,'ieee-le');
CNT.FILE.OPEN= 1;
end;
else
CNT.FileName = arg1;
[CNT.FILE.Path,CNT.FILE.Name,ext]=fileparts(arg1);
CNT.FILE.Ext = ext(2:end);
CNT.FILE.stdout=1;
CNT.FILE.stderr=2;
CNT.FILE.FID = fopen(CNT.FileName,PERMISSION,'ieee-le');
if CNT.FILE.FID<0,
fprintf(2,'Error CNTOPEN: file %s not found.\n',CNT.FileName);
return;
end;
CNT.FILE.OPEN = 1;
end;
fid = CNT.FILE.FID;
%%%%% READ HEADER
if 0, % old header
%h.rev = fread(fid,12,'char');
%h.nextfile = fread(fid,1,'long');
%h.prevfile = fread(fid,1,'long');
h.type = fread(fid,1,'char');
h.id = fread(fid,20,'char');
h.oper = fread(fid,20,'char');
h.doctor = fread(fid,20,'char');
h.referral = fread(fid,20,'char');
h.hospital = fread(fid,20,'char');
h.patient = fread(fid,20,'char');
h.age = fread(fid,1,'short');
h.sex = fread(fid,1,'char');
h.hand = fread(fid,1,'char');
h.med = fread(fid,20,'char');
h.category = fread(fid,20,'char');
h.state = fread(fid,20,'char');
h.label = fread(fid,20,'char');
h.date = fread(fid,10,'char');
h.time = fread(fid,12,'char');
h.avgmode = fread(fid,1,'char');
h.review = fread(fid,1,'char');
h.nsweeps = fread(fid,1,'ushort');
h.compsweeps = fread(fid,1,'ushort');
h.pnts = fread(fid,1,'ushort');
h.nchannels = fread(fid,1,'short');
h.avgupdate = fread(fid,1,'short');
h.domain = fread(fid,1,'char');
h.rate = fread(fid,1,'ushort');
h.scale = fread(fid,1,'double');
h.veogcorrect = fread(fid,1,'char');
h.veogtrig = fread(fid,1,'float');
h.veogchnl = fread(fid,1,'short');
h.heogcorrect = fread(fid,1,'char');
h.heogtrig = fread(fid,1,'float');
h.heogchnl = fread(fid,1,'short');
h.baseline = fread(fid,1,'char');
h.offstart = fread(fid,1,'float');
h.offstop = fread(fid,1,'float');
h.reject = fread(fid,1,'char');
h.rejchnl1 = fread(fid,1,'char');
h.rejchnl2 = fread(fid,1,'char');
h.rejchnl3 = fread(fid,1,'char');
h.rejchnl4 = fread(fid,1,'char');
h.rejstart = fread(fid,1,'float');
h.rejstop = fread(fid,1,'float');
h.rejmin = fread(fid,1,'float');
h.rejmax = fread(fid,1,'float');
h.trigtype = fread(fid,1,'char');
h.trigval = fread(fid,1,'float');
h.trigchnl = fread(fid,1,'char');
h.trigisi = fread(fid,1,'float');
h.trigmin = fread(fid,1,'float');
h.trigmax = fread(fid,1,'float');
h.trigdur = fread(fid,1,'float');
h.dir = fread(fid,1,'char');
h.dispmin = fread(fid,1,'float');
h.dispmax = fread(fid,1,'float');
h.xmin = fread(fid,1,'float');
h.xmax = fread(fid,1,'float');
h.ymin = fread(fid,1,'float');
h.ymax = fread(fid,1,'float');
h.zmin = fread(fid,1,'float');
h.zmax = fread(fid,1,'float');
h.lowcut = fread(fid,1,'float');
h.highcut = fread(fid,1,'float');
h.common = fread(fid,1,'char');
h.savemode = fread(fid,1,'char');
h.manmode = fread(fid,1,'char');
h.ref = fread(fid,20,'char');
h.screen = fread(fid,80,'char');
h.seqfile = fread(fid,80,'char');
h.montage = fread(fid,80,'char');
h.heegcorrect = fread(fid,1,'char');
h.variance = fread(fid,1,'char');
h.acceptcnt = fread(fid,1,'ushort');
h.rejectcnt = fread(fid,1,'ushort');
h.reserved74 = fread(fid,74,'char');
for n = 1:64,%h.nchannels
e(n).lab = fread(fid,10,'char');
e(n).x_coord = fread(fid,1,'float');
e(n).y_coord = fread(fid,1,'float');
e(n).alpha_wt = fread(fid,1,'float');
e(n).beta_wt = fread(fid,1,'float');
end
else % new header
h.rev = fread(fid,12,'char');
h.nextfile = fread(fid,1,'uint32');
h.prevfile = fread(fid,1,'uint32');
h.type = fread(fid,1,'char');
h.id = fread(fid,20,'char');
h.oper = fread(fid,20,'char');
h.doctor = fread(fid,20,'char');
h.referral = fread(fid,20,'char');
h.hospital = fread(fid,20,'char');
h.patient = fread(fid,20,'char');
h.age = fread(fid,1,'short');
h.sex = fread(fid,1,'char');
h.hand = fread(fid,1,'char');
h.med = fread(fid,20,'char');
h.category = fread(fid,20,'char');
h.state = fread(fid,20,'char');
h.label = fread(fid,20,'char');
h.date = fread(fid,10,'char'); %%%
h.time = fread(fid,12,'char'); %%%
h.mean_age = fread(fid,1,'float');
h.stdev = fread(fid,1,'float');
h.n = fread(fid,1,'short');
h.compfile = fread(fid,38,'char');
h.spectwincomp = fread(fid,1,'float');
h.meanaccuracy = fread(fid,1,'float');
h.meanlatency = fread(fid,1,'float');
h.sortfile = fread(fid,46,'char');
h.numevents = fread(fid,1,'int'); %%%
h.compoper = fread(fid,1,'char');
h.avgmode = fread(fid,1,'char');
h.review = fread(fid,1,'char');
h.nsweeps = fread(fid,1,'ushort');
h.compsweeps = fread(fid,1,'ushort');
h.acceptcnt = fread(fid,1,'ushort');
h.rejectcnt = fread(fid,1,'ushort');
h.pnts = fread(fid,1,'ushort');
h.nchannels = fread(fid,1,'ushort'); %%%
h.avgupdate = fread(fid,1,'ushort');
h.domain = fread(fid,1,'char');
h.variance = fread(fid,1,'char');
h.rate = fread(fid,1,'ushort'); %%%
h.scale = fread(fid,1,'double');
h.veogcorrect = fread(fid,1,'char');
h.heogcorrect = fread(fid,1,'char');
h.aux1correct = fread(fid,1,'char');
h.aux2correct = fread(fid,1,'char');
h.veogtrig = fread(fid,1,'float');
h.heogtrig = fread(fid,1,'float');
h.aux1trig = fread(fid,1,'float');
h.aux2trig = fread(fid,1,'float');
h.heogchnl = fread(fid,1,'short');
h.veogchnl = fread(fid,1,'short');
h.aux1chnl = fread(fid,1,'short');
h.aux2chnl = fread(fid,1,'short');
h.veogdir = fread(fid,1,'char');
h.heogdir = fread(fid,1,'char');
h.aux1dir = fread(fid,1,'char');
h.aux2dir = fread(fid,1,'char');
h.veog_n = fread(fid,1,'short');
h.heog_n = fread(fid,1,'short');
h.aux1_n = fread(fid,1,'short');
h.aux2_n = fread(fid,1,'short');
h.veogmaxcnt = fread(fid,1,'short');
h.heogmaxcnt = fread(fid,1,'short');
h.aux1maxcnt = fread(fid,1,'short');
h.aux2maxcnt = fread(fid,1,'short');
h.veogmethod = fread(fid,1,'char');
h.heogmethod = fread(fid,1,'char');
h.aux1method = fread(fid,1,'char');
h.aux2method = fread(fid,1,'char');
h.ampsensitivity = fread(fid,1,'float');
h.lowpass = fread(fid,1,'char'); %%%
h.highpass = fread(fid,1,'char'); %%%
h.notch = fread(fid,1,'char'); %%%
h.autoclipadd = fread(fid,1,'char');
h.baseline = fread(fid,1,'char'); %%%
h.offstart = fread(fid,1,'float');
h.offstop = fread(fid,1,'float');
h.reject = fread(fid,1,'char');
h.rejstart = fread(fid,1,'float');
h.rejstop = fread(fid,1,'float');
h.rejmin = fread(fid,1,'float');
h.rejmax = fread(fid,1,'float');
h.trigtype = fread(fid,1,'char');
h.trigval = fread(fid,1,'float');
h.trigchnl = fread(fid,1,'char'); %%%
h.trigmask = fread(fid,1,'short');
h.trigisi = fread(fid,1,'float');
h.trigmin = fread(fid,1,'float');
h.trigmax = fread(fid,1,'float');
h.trigdir = fread(fid,1,'char');
h.autoscale = fread(fid,1,'char');
h.n2 = fread(fid,1,'short');
h.dir = fread(fid,1,'char');
h.dispmin = fread(fid,1,'float');
h.dispmax = fread(fid,1,'float');
h.xmin = fread(fid,1,'float');
h.xmax = fread(fid,1,'float');
h.automin = fread(fid,1,'float');
h.automax = fread(fid,1,'float');
h.zmin = fread(fid,1,'float');
h.zmax = fread(fid,1,'float');
h.lowcut = fread(fid,1,'float'); %%%
h.highcut = fread(fid,1,'float'); %%%
h.common = fread(fid,1,'char');
h.savemode = fread(fid,1,'char');
h.manmode = fread(fid,1,'char');
h.ref = fread(fid,10,'char');
h.rectify = fread(fid,1,'char');
h.displayxmin = fread(fid,1,'float');
h.displayxmax = fread(fid,1,'float');
h.phase = fread(fid,1,'char');
h.screen = fread(fid,16,'char');
h.calmode = fread(fid,1,'short');
h.calmethod = fread(fid,1,'short');
h.calupdate = fread(fid,1,'short');
h.calbaseline = fread(fid,1,'short');
h.calsweeps = fread(fid,1,'short');
h.calattenuator = fread(fid,1,'float');
h.calpulsevolt = fread(fid,1,'float');
h.calpulsestart = fread(fid,1,'float');
h.calpulsestop = fread(fid,1,'float');
h.calfreq = fread(fid,1,'float');
h.taskfile = fread(fid,34,'char');
h.seqfile = fread(fid,34,'char');
h.spectmethod = fread(fid,1,'char');
h.spectscaling = fread(fid,1,'char');
h.spectwindow = fread(fid,1,'char');
h.spectwinlength = fread(fid,1,'float');
h.spectorder = fread(fid,1,'char');
h.notchfilter = fread(fid,1,'char'); %%%
h.headgain = fread(fid,1,'short'); %%%
h.additionalfiles = fread(fid,1,'int');
h.unused = fread(fid,5,'char');
h.fspstopmethod = fread(fid,1,'short');
h.fspstopmode = fread(fid,1,'short');
h.fspfvalue = fread(fid,1,'float');
h.fsppoint = fread(fid,1,'short');
h.fspblocksize = fread(fid,1,'short');
h.fspp1 = fread(fid,1,'ushort');
h.fspp2 = fread(fid,1,'ushort');
h.fspalpha = fread(fid,1,'float');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -