0

我有一个 1x84 单元格数组,我得到了交叉验证的索引:

indices = crossvalind('Kfold',length(filenames),k_fold);
for i = 1:k_fold
    test = (indices == i);
    train = ~test;

给定测试和训练(1 或 0 的 84x1 逻辑数组)如何获取由测试/训练索引的所有文件名?

4

1 回答 1

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)

请注意,trts都是字符串本身的元胞数组。因此,要访问 中的第一个字符串tr,请执行以下操作:

>> tr{1}
于 2013-05-03T15:09:37.513 回答