Sto cercando qualsiasi buon tutorial sulla vettorizzazione (loop) in MATLAB.Introduzione alla vettorizzazione in MATLAB - qualche buon tutorial?
Ho un algoritmo abbastanza semplice, ma utilizza due loop for
. So che dovrebbe essere semplice da vettorializzare e vorrei imparare come farlo invece di chiederti la soluzione.
Ma per farvi sapere che cosa problema che ho, in modo che sarebbe in grado di suggerire le migliori tutorial che mostrano come risolvere i problemi simili, ecco il profilo del mio problema:
B = zeros(size(A)); % //A is a given matrix.
for i=1:size(A,1)
for j=1:size(A,2)
H = ... %// take some surrounding elements of the element at position (i,j) (i.e. using mask 3x3 elements)
B(i,j) = computeSth(H); %// compute something on selected elements and place it in B
end
end
Così, ho' NON sto chiedendo la soluzione. Sto chiedendo un buon tutorial, esempi di cicli di vettorizzazione in MATLAB. Mi piacerebbe imparare come farlo e farlo da solo.
Contro fortemente l'utilizzo di blockproc se riesci ad evitarlo: è molto lento (inoltre, ha subito un cambiamento incompatibile dal 2009a al 2009b). Se hai abbastanza RAM, è sempre preferibile eseguire "im2col" e applicare la funzione in un colpo solo. – Jonas
@Jonas: Buono a sapersi. In realtà non utilizzo BLOCKPROC abbastanza spesso da aver riscontrato tali problemi. Lo stavo elencando come una delle numerose opzioni che l'OP potrebbe voler esaminare. – gnovice