我有一个1x84的单元格数组,我得到交叉验证的索引:
indices = crossvalind('Kfold',length(filenames),k_fold);
for i = 1:k_fold
test = (indices == i);
train = ~test;
给定测试和训练(84或1逻辑数组1或0)如何获得通过test / train索引的所有文件名?
答案 0 :(得分:0)
您可以对单元格数组应用逻辑索引以对其进行切片。这是一个简化的例子:
%# create a cell array of string
C = cellstr(num2str((1:5)', 'file %d'));
%# random split
trainIdx = rand(size(C)) > 0.5;
testIdx = ~trainIdx;
%# slice cell array
tr = C(trainIdx)
ts = C(testIdx)
请注意,tr
和ts
都是字符串本身的单元格数组。因此,要访问tr
中的第一个字符串,请执行以下操作:
>> tr{1}