lapplot.m

来自「含有多种ICA算法的eeglab工具箱」· M 代码 · 共 143 行

M
143
字号
% lapplot() -  Compute the discrete laplacian of EEG scalp distribution(s)%                % Usage:%   >> laplace = lapplot(map,eloc_file,draw)% % Inputs:%    map        - Activity levels, size (nelectrodes,nmaps)%    eloc_file	- Electrode location filename (.loc file) %                 For format, see  >> topoplot example %    draw       - If defined, draw the map(s) {default: no}%% Output:%    laplace    - Laplacian map, size (nelectrodes,nmaps)%% Note: uses del2()%% Author: Scott Makeig, SCCN/INC/UCSD, La Jolla, 1998 %% See also: topoplot(), gradplot()% Copyright (C) Scott Makeig, SCCN/INC/UCSD, La Jolla, 1998 %% 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% $Log: lapplot.m,v $% Revision 1.1  2002/04/05 17:36:45  jorn% Initial revision%% 01-25-02 reformated help & license, added links -ad function [laplac] = lapplot(map,filename,draw)if nargin < 2	help lapplot;	return;end;MAXCHANS = size(map,1);GRID_SCALE = 2*MAXCHANS+5;MAX_RADIUS = 0.5;% ---------------------% Read the channel file% ---------------------if isstr( filename )	fid = fopen(filename); 	locations = fscanf(fid,'%d %f %f %s',[7 MAXCHANS]);	fclose(fid);	locations = locations';	Th = pi/180*locations(:,2);   % convert degrees to rads	Rd = locations(:,3);	ii = find(Rd <= MAX_RADIUS); % interpolate on-scalp channels only	Th = Th(ii);	Rd = Rd(ii);	[x,y] = pol2cart(Th,Rd);else	x = real(filename);	y = imag(filename);end;	% ---------------------------------------------------% Locate nearest position of an electrode in the grid % ---------------------------------------------------xi = linspace(-0.5,0.5,GRID_SCALE);   % x-axis description (row vector)yi = linspace(-0.5,0.5,GRID_SCALE);   % y-axis description (row vector)for i=1:MAXCHANS   [useless_var horizidx(i)] = min(abs(y(i) - xi));    % find pointers to electrode   [useless_var vertidx(i)] = min(abs(x(i) - yi));     % positions in Ziend;   % -----------------% Compute laplacian% -----------------for i=1:size(map,2)    	[Xi,Yi,Zi] = griddata(y,x,map(:,i),yi',xi, 'invdist');   % interpolate data   	laplac2D = del2(Zi);	positions = horizidx + (vertidx-1)*GRID_SCALE;	laplac(:,i) = laplac2D(positions(:));	% ------------------	% Draw laplacian map	% ------------------	if exist('draw');        mask = (sqrt(Xi.^2+Yi.^2) <= MAX_RADIUS);        laplac2D(find(mask==0)) = NaN;		subplot(ceil(sqrt(size(map,2))), ceil(sqrt(size(map,2))), i);		contour(laplac2D); 		title( int2str(i) );% %%% Draw Head %%%%ax = axis; width = ax(2)-ax(1);axis([ax(1)-width/3 ax(2)+width/3 ax(3)-width/3 ax(4)+width/3])steps = 0:2*pi/100:2*pi;basex = .18*MAX_RADIUS;  tip = MAX_RADIUS*1.15; base = MAX_RADIUS-.004;EarX = [.497 .510 .518 .5299 .5419 .54 .547 .532 .510 .489];EarY = [.0555 .0775 .0783 .0746 .0555 -.0055 -.0932 -.1313 -.1384 -.1199];HCOLOR = 'k';HLINEWIDTH = 1.8;% Plot Head, Ears, Nosehold onplot(1+width/2+cos(steps).*MAX_RADIUS*width,...     1+width/2+sin(steps).*MAX_RADIUS*width,...    'color',HCOLOR,'Linestyle','-','LineWidth',HLINEWIDTH); % headplot(1+width/2+[.18*MAX_RADIUS*width;0;-.18*MAX_RADIUS*width],...     1+width/2+[base;tip;base]*width,...    'Color',HCOLOR,'LineWidth',HLINEWIDTH);                 % nose   plot(1+width/2+EarX*width,...     1+width/2+EarY*width,...           'color',HCOLOR,'LineWidth',HLINEWIDTH)           % l earplot(1+width/2-EarX*width,...     1+width/2+EarY*width,...           'color',HCOLOR,'LineWidth',HLINEWIDTH)           % r earhold offaxis off	end;end;                   return;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?