从循环matlab中采集并递增单元阵列



我对matlab还很陌生,但经过数小时的努力,我似乎不得不直接询问,因为我发现的任何东西都没有直接帮助

我想做的是构建一个单元格数组,其中包含我必须循环的各种变量。目前,我已经很好地创建了这个单元数组,但循环覆盖了结果。我一直在寻找保存输出的方法,并且已经成功了,但只使用了不涉及单元阵列的示例:(

这是代码(如果看起来很糟糕,请原谅我):

subject = {'505','506'}
pathname_read  = 'a path';
nsubj = length(subject);
curIndex=0;
for s=1:nsubj
Cond={'HiLabel','LowLabel'};
ncond=length(Cond); 
for e=1:ncond;
curIndex=curIndex+1
line=line+1
curCond=Cond{e};
curFile=[pathname_read subject{s} '_' Cond{e} '.set'];
curSubject=subject{s};
curSet={'index' curIndex 'load' curFile 'subject' curSubject 'condition' curCond};
end
end

curSet是构建的单元数组。我见过用curSet(e)这样的方法从循环中提取,但在这里它不起作用。

最终我想要的结果是这样的:

curSet=
{'index 1 'load' path/file 'subject' 505 'condition' HiLabel};
{'index 2 'load' path/file 'subject' 505 'condition' LoLabel};
{'index 3 'load' path/file 'subject' 506 'condition' HiLabel};
{'index 4 'load' path/file 'subject' 506 'condition' LoLabel};

我也想找到一种方法来获得;每行之后。我想,一旦全部收集起来,它可能是一种字符串,因为它会"粘贴到一个看起来像的函数中">

doSomething(A, 'command',{ My generated curSet });

更改线路

curSet = {'index' curIndex 'load' curFile 'subject' curSubject 'condition' curCond};

curSet(curIndex,:) = {'index' curIndex 'load' curFile 'subject' curSubject 'condition' curCond};

这样,您可以在每次迭代时添加一行,而不是覆盖。最终结果是

>> curSet
curSet = 
'index'    [1]    'load'    [1x21 char]    'subject'    '505'    'condition'    'HiLabel' 
'index'    [2]    'load'    [1x22 char]    'subject'    '505'    'condition'    'LowLabel'
'index'    [3]    'load'    [1x21 char]    'subject'    '506'    'condition'    'HiLabel' 
'index'    [4]    'load'    [1x22 char]    'subject'    '506'    'condition'    'LowLabel'

/edit Luis建议创建单元格数组更好,删除了我的代码。

结构最好与您正在创建的数据结构相匹配。代码看起来像:

subject = {'505','506'};
pathname_read  = 'a path';
nsubj = length(subject);
curIndex=0;
line=0;
curSet=[];
for s=1:nsubj
Cond={'HiLabel','LowLabel'};
ncond=length(Cond);
for e=1:ncond;
curIndex=curIndex+1;
line=line+1;
cr.index=curIndex;
cr.load=[pathname_read subject{s} '_' Cond{e} '.set'];
cr.subject=subject{s};
cr.condition=Cond{e};
curSet=[curSet cr];
end
end 

相关内容

  • 没有找到相关文章

最新更新