Azzera filtri
Azzera filtri

How to remove the for loop from the following code?

5 visualizzazioni (ultimi 30 giorni)
'Index' is an array of length N. Every elemnt of the array Index is an integer (from 1 to 7)
"xxtr" is a sample matrix with size NxM. This means for every sample (row) of matrix 'xxtr' there is an equivalent integer value in array 'Index'
Ecah element of the cell 'myRF{c,i}' is a fitted fitrensemble model that can predict output y for any sample x.
Is there a way that I can vectorize the following code by excluding the nested for loops (for efficincy purpose)?
Thanks.
for i=1:4
for jj=1:size(xxtr,1)
c=Index(jj);
x=xxtr(jj,:);
[y]=predict(myRF{c,i},x) ; % predictions
yy(jj,i)=y; %
end
end

Risposta accettata

Voss
Voss il 29 Dic 2021
yy = cellfun(@(x,y)predict(x,y),myRF(Index,:),repmat(num2cell(xxtr,2),1,4));

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by