【发布时间】:2010-09-21 14:57:47
【问题描述】:
我的 MATLAB 脚本是:
-
从 MATLAB 文件中提取四个不同的fMRI 起始点(文件名为“主题 06 数据”、“主题 05 数据”等)
-
将此信息与另外两个名为“durations”和“names”的变量一起放入一个新文件中。
-
将所有这些保存为一个新的 MATLAB 文件。
我面临两个问题:
目前,下面的脚本设法对“Gender_recogntion”目录中的第一个 MATLAB 文件执行第 1 到 3 步,但对文件夹中的其他 MATLAB 文件没有执行第 1 到第 3 步。它在 'load(sub_name(i).name);' 行的循环中崩溃。
这是我得到的错误:
???索引矩阵引用不正确。
==> Gender_onsets_script_2 在 16 时出错
加载(子名称(i).name);
另外,我想用原始 MATLAB 文件的名称来命名新的 MATLAB 文件。目前,新的 MATLAB 文件名为“onsets.mat”。
clear all
close all
clc
cd 'C:\Program Files\MATLAB\R2007b\Data\Resilience\Real_data\Raw\Matlab_files\Gender_recogntion';
sub_name = dir('C:\Program Files\MATLAB\R2007b\Data\Resilience\Real_data\Raw\Matlab_files\Gender_recogntion\*.mat');
for i = 1:numel(sub_name);
load(sub_name(i).name);
names = {'sad' 'anger' 'neutral' 'rest'};
durations = {[18] [18] [18] [18]};
onsets=cell(1,4);
onsets{1} = data.time_since_scan_start(data.emotion==5)/1000; %Get the 36 onsets for sad.
onsets{2} = data.time_since_scan_start(data.emotion==4)/1000; %Get the 36 onsets for anger.
onsets{3} = data.time_since_scan_start(data.emotion==6)/1000;% Get the 36 onsets for calm.
onsets{4} = datarest.onset/1000; %Get the six onsets for the rest blocks.
onsets{1} = onsets{1}(1:6:36)'; %Get the first onset value of each of the six blocks.
onsets{2} = onsets{2}(1:6:36)';
onsets{3} = onsets{3}(1:6:36)';
onsets{4} = onsets{4}';
%cd Onsets folder, saves onsets, and then cd back to folder "Matlab_files"
cd 'C:\Program Files\MATLAB\R2007b\Data\Resilience\Real_data\Onsets';
save 'onsets.mat' names durations onsets
cd 'C:\Program Files\MATLAB\R2007b\Data\Resilience\Real_data\Raw\Matlab_files\Gender_recogntion';
end
【问题讨论】:
-
您的问题无法解析。您说您在 'load(sub_name(i).name)' 行遇到了崩溃,但这甚至不是您发布的代码中的一行。尝试逐步解决您的问题,检查以验证您了解每一步发生的情况。然后,当您遇到导致问题的步骤时,请尝试编写一些仅执行该步骤的代码并将其作为示例发布。
-
嗨,马克,感谢您的建议。在我原来的帖子中,我没有意识到我的脚本的开头没有被包括在内......我已经改变了这一点。从那以后,我尝试了不同的方法来解决这个问题,但都没有成功。
标签: matlab