我有一个 1x84 单元格数组,我得到了交叉验证的索引:
indices = crossvalind('Kfold',length(filenames),k_fold);
for i = 1:k_fold
test = (indices == i);
train = ~test;
给定测试和训练(1 或 0 的 84x1 逻辑数组)如何获取由测试/训练索引的所有文件名?
我有一个 1x84 单元格数组,我得到了交叉验证的索引:
indices = crossvalind('Kfold',length(filenames),k_fold);
for i = 1:k_fold
test = (indices == i);
train = ~test;
给定测试和训练(1 或 0 的 84x1 逻辑数组)如何获取由测试/训练索引的所有文件名?
您可以在元胞数组上应用逻辑索引来对其进行切片。这是简化的示例:
%# 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}