提取部分电极A矩阵程序改变部分


提取部分电极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);

文章作者: Mat Jenin
文章链接: http://matjenin.xyz
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Mat Jenin !
  目录