提取部分电极A矩阵程序改变部分
roast.m
第一处
第131行下方加上:
case 'targetcoord'
targetCoord = varargin{indArg+1};
indArg = indArg+2;
在原133行(更改后为135行):
error('Supported options are: ''capType'', ''elecType'', ''elecSize'', ''elecOri'', ''T2'', ''meshOptions'', ''conductivities'', ''simulationTag'', ''resampling'', and ''zeroPadding'',.');
中添加:’
''targetCoord''
第二处
在第674行下方加上:
% preprocess electrodes
[indexE, ~, ~] = getDistanceElec([148,158,105]);
select_E_num = 10; % 只选前10个电极进行优化
select_E = indexE(1:select_E_num,1);
fid = fopen('./elec72.loc'); C = textscan(fid,'%d %f %f %s'); fclose(fid);
elecName = C{4}; for i=1:length(elecName), elecName{i} = strrep(elecName{i},'.',''); end
select_elecName = {};
for n = 1:select_E_num
select_elecName{n,1} = elecName{select_E(n)};
end
elecName = select_elecName;
elecName{11,1} = 'Iz';
[elecPara,indInUsrInput] = elecPreproc(subj,elecName,elecPara);
附:其中getDistanceElec.m程序内容为:
% 返回电极坐标electrode_coord和节点距离target由近到远的排序index function [indexE, distE, dist_sE] = getDistanceElec(target) load('elec_coord.mat'); % 电极坐标 N = size(elec_coord,1); coord_target = elec_coord - target; distE = zeros(N,1); for i=1:N distE(i) = norm(coord_target(i,:),2); end [dist_sE,indexE] = sortrows(distE); end
其中’elec_coord.mat’为标准MNI152头模下的电极坐标,与个体头模可能会有出入。
roast_target.m
第一处
在590行下添加:
elecName_O1_10 = {'Oz';'O1';'O2';'POz';'PO3';'O9';'PO7';'PO4';'O10';'Iz'};
其中elecName_O1_10是距离O1电极最近的10个电极,这里为手动添加的电极名称。
在原593行(更改后为594行)的:
for i=1:length(indMonElec), fprintf('%s (%.3f mA)\n',elecName{indMonElec(i)},mon(indMonElec(i))); end, fprintf('\n');
更改为:
for i=1:length(indMonElec), fprintf('%s (%.3f mA)\n',elecName_O1_10{indMonElec(i)},mon(indMonElec(i))); end, fprintf('\n');
第二处
在第656行:
figure('Name',['Montage in Targeting: ' uniqueTag],'NumberTitle','off');
下面添加:
[indexE, ~, ~] = getDistanceElec([87,30,74]);
select_E_num = 9; % 只选前10个电极进行优化
select_E = indexE(1:select_E_num,1);
mon_O1_10 = zeros(72,1);
mon_O1_10(select_E,1) = mon(1:9,1);
mon_O1_10(end,1) = mon(end,1);
其中[87,30,74]为靶点的体素坐标。
并将下面的
mytopoplot(mon,'./elec72.loc','numcontour',0,'plotrad',0.9,'shading','flat','gridscale',1000,'whitebk','off','colormap',cm_mon);
更改为:
mytopoplot(mon_O1_10,'./elec72.loc','numcontour',0,'plotrad',0.9,'shading','flat','gridscale',1000,'whitebk','off','colormap',cm_mon);
第三处
第674行的:
[~,indInUsrInput] = elecPreproc(subj,elecName,elecPara);
改为:
[~,indInUsrInput] = elecPreproc(subj,elecName_O1_10,elecPara); % O1 10个电极
test4.m
第一处
在
if verbose
上面添加:
[indexE, ~, ~] = getDistanceElec([87,30,74]);
select_E_num = 9; % 只选前10个电极进行优化
select_E = indexE(1:select_E_num,1);
select_E(8,1) = 46;
第二处
第一个位置的
variable x(n);
改为:
variable x(select_E_num);