Bir kod için aşağıdaki döngüye sahibim (bu histogramları hesaplar). Matlab'da yazıyorum. Matlab'a yeni olduğum için bunu yapmak için daha hızlı yöntemler bilmiyorum. Şu anda tercihen döngü gerekmez olanlar Bunu yapmak için herhangi bir hızlı yöntemler var mıdır Döngü için en iyileştirme matlabı
for i=1:size(b)
a(b(i)) = a(b(i)) + 1;
end
yazıyorum?
genel yorum: 'size' yapıyorsun şimdi ne doğru işlev değil, daha ziyade kullanmak [uzunluk] (http://www.mathworks.nl/help/matlab/ref/length.html) veya [sayı] (http://www.mathworks.nl/help/matlab/ref/numel.html). –
For-döngülerinin verimsiz/yavaş olduğu ve mümkünse değiştirilmesi gerektiği fikri asılsızdır. Bu kodu daha hızlı bir şeyle değiştirebilmenize rağmen, muhtemelen saniyenin yalnızca bir kısmını kaydedersiniz. Endişelenmeniz gereken kod optimizasyonu seviyesi bu değil. – Kavka
@Kavka Bu tür bir döngü ile ilgili olarak hemfikir olurdum. Büyük matrisleri manipüle eden daha karmaşık bir döngü, vektörelleştirmeye değecektir, değil mi? Matlab Matrislerle çalışmak üzere tasarlandı - tüm matris işlemlerinin optimize edilmesi gerekiyor. – Derek