因此,我应该从一个文件加载交叉验证折叠(10次迭代,每次是10次折叠,因此总共100次,顺序存储在一个一维数组中)。这是文件:https://www.mediafire.com/?bvs0n0eu7gs0if4。问题是我的代码大量使用for循环,我想将其矢量化,以下是我的代码:
input_filename = 'cv_yeast.mat';
cv = load(input_filename);
nfolds= 10;
niters = 10;
for loop =1:niters
for i = 1 : nfolds
teIdx = cv.cv{((loop-1)*nfolds + i)};
trIdx = [];
for j = 1 : nfolds
if j ~= i
trIdx = [trIdx; cv.cv{(loop - 1)*nfolds + j}];
end
end
% Processing goes here
end
end出于某些原因,我不想向量化外部的两个For循环,只想向量化内部的循环。有没有人可以帮我,非常感谢:)
发布于 2016-11-19 12:31:08
您可以创建j的向量,并垂直连接cv的元素:
for loop =1:niters
for i = 1 : nfolds
teIdx = cv.cv{((loop-1)*nfolds + i)};
J = [1:i-1, i+1:nfolds];
trIdx = vertcat(cv.cv{(loop - 1)*nfolds + J});
end
endhttps://stackoverflow.com/questions/40688995
复制相似问题