How to remove the for loop from the following code?

5 visualizaciones (últimos 30 días)
H R
H R el 9 de Nov. de 2021
Respondida: Voss el 29 de Dic. de 2021
'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

Respuesta aceptada

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

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by