How can I vectorize this piece of code for loading cross-validation from file ?
2 views (last 30 days)
Show older comments
Dang Manh Truong
on 19 Nov 2016
Commented: Dang Manh Truong
on 19 Nov 2016
So I am supposed to load the cross-validation folds from a file (10 iterations, each is 10-folds, so a total of 100, arranged sequentially in a 1-dimensional array). I have attached the file below. The problem is my code uses for loops intensively and I would like to vectorise it, here is my code:
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 some reasons I don't want to vectorise the 2 outer for loops, just the inner one. Can anyone help me, thank you very much :)
0 Comments
Accepted Answer
Walter Roberson
on 19 Nov 2016
Possibly
jv = setdiff(1 : nfolds, i);
trIdx = vertcat( cv.cv{(loop - 1)*nfolds + jv} );
More Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!