Je suis à la recherche d'une vectorisation correcte de la fonction matlab suivante pour éliminer la boucle for et la vitesse de gain par multithreading.vectorisation de matlab for-loop
size(A)
= N
-by- N
, où 30 <= N <= 60
1e4 <= numIter <= 1e6
function val=permApproxStochSquare(A,numIter)
%// A ... input square non-negative matrix
%// numIter ... number of interations
N=size(A,1);
alpha=zeros(numIter,1);
for curIter=1:numIter
U=randn(N,N);
B=U.*sqrt(A);
alpha(curIter)=det(B)^2;
end
val=mean(alpha);
end
Pour un grand N, en utilisant 'parfor' pourrait être une option. – Daniel
@Daniel Oui, parfor est simple et bonne solution, mais j'ai besoin de solution sans Parallel Computing Toolbox (parfor) – michal
A côté d'un parfor, je pense seulement à precomputing 'sqrt (A)' en dehors de la boucle. 'parfor' peut être utilisé sans la Parallel Computing Toolbox mais vous n'avez aucune flexibilité. – Bentoy13