मदद फ़ाइलों कि सप्टक के साथ आते हैं इस प्रविष्टि है:
19.1 बेसिक vectorization
एक बहुत अच्छा पहली सन्निकटन करने के लिए, vectorization में लक्ष्य लिखने कोड है कि छोरों से बचा जाता है और पूरे सरणी का उपयोग करता है संचालन।एक तुच्छ उदाहरण के रूप में, पर विचार
for i = 1:n
for j = 1:m
c(i,j) = a(i,j) + b(i,j);
endfor
endfor
बहुत सरल
c = a + b;
यह लिखने के लिए न केवल आसान है की तुलना में; यह अनुकूलन के लिए भी आंतरिक रूप से बहुत आसान है। ऑक्टवे इस ऑपरेशन को अंतर्निहित कार्यान्वयन के लिए प्रतिनिधि करता है, जो अन्य अनुकूलन के बीच विशेष वेक्टर हार्डवेयर निर्देशों का उपयोग कर सकता है या अनुमानतः समानांतर में जोड़ों को भी निष्पादित कर सकता है। सामान्य रूप से, यदि कोड वेक्टरकृत है, अंतर्निहित कार्यान्वयन में में तेजी से निष्पादन प्राप्त करने के लिए किए गए अनुमानों के बारे में अधिक स्वतंत्रता है।
यह "सस्ते" निकायों के साथ लूप के लिए विशेष रूप से महत्वपूर्ण है। प्रायः स्वीकार्य प्रदर्शन प्राप्त करने के लिए केवल सबसे ऊपर लूप को सदिश बनाने के लिए पर्याप्त है। अंगूठे का एक सामान्य नियम यह है कि वेक्टरकृत निकाय का "ऑर्डर" लूप संलग्न करने के "ऑर्डर" के बराबर या बराबर होना चाहिए।
एक कम तुच्छ उदाहरण के रूप में, के बजाय
for i = 1:n-1
a(i) = b(i+1) - b(i);
endfor
लिखने
a = b(2:n) - b(1:n-1);
यह बजाय अनुक्रमण के लिए सरणियों का उपयोग कर एक सूचकांक चर से अधिक पाशन के बारे में एक महत्वपूर्ण सामान्य अवधारणा को दर्शाता है।  सूचकांक अभिव्यक्तियां। उदारतापूर्वक बुलियन इंडेक्सिंग का भी उपयोग करें। यदि की स्थिति की जांच की आवश्यकता है, तो इस स्थिति को बूलियन अनुक्रमणिका के रूप में भी लिखा जा सकता है। उदाहरण के लिए,
for i = 1:n
if (a(i) > 5)
a(i) -= 20
endif
endfor
लिखने
a(a>5) -= 20;
जो तथ्य यह है कि 'एक> 5' एक बूलियन सूचकांक का उत्पादन कारनामे के बजाय के लिए।
लूपिंग (ऑपरेटरों जैसे '। *' और '। ^') से बचने के लिए जब भी संभव हो, तत्व वार वेक्टर ऑपरेटरों का उपयोग करें।  अंकगणित ओपीएस। सरल इनलाइन फ़ंक्शंस के लिए, 'वेक्टरize' फ़ंक्शन स्वचालित रूप से ऐसा कर सकता है।
- निर्मित फंक्शन: vectorize (मज़ा) , '', '/', आदि के सभी घटनाओं की जगह के साथ 'द्वारा इनलाइन समारोह मज़ा की एक vectorized संस्करण बनाएं। ',' ./ ', आदि
This may be useful, for example, when using inline functions with
numerical integration or optimization where a vector-valued
function is expected.
fcn = vectorize (inline ("x^2 - 1"))
=> fcn = f(x) = x.^2 - 1
quadv (fcn, 0, 3)
=> 6
See also:  inline,  formula,
 argnames.
इसके अलावा इन elementwise ऑपरेटरों दोनों को से बचने के पाशन और अनावश्यक मध्यवर्ती स्मृति आवंटन में प्रसारण शोषण करते हैं।
 प्रसारण।
यदि संभव हो तो अंतर्निहित और लाइब्रेरी फ़ंक्शंस का उपयोग करें। अंतर्निर्मित और संकलित कार्य बहुत तेज़ हैं। यहां तक कि एक एम-फाइल लाइब्रेरी फ़ंक्शन के साथ, संभावनाएं अच्छी हैं कि यह पहले से ही अनुकूलित है, या भविष्य में रिलीज में को अनुकूलित किया जाएगा।
उदाहरण के लिए, यहां तक कि अधिक से
a = b(2:n) - b(1:n-1);
बेहतर
a = diff (b);
अधिकांश सप्टक कार्यों मन में वेक्टर और सरणी तर्क के साथ लिखा जाता है। यदि आप अपने आप को एक बहुत ही सरल ऑपरेशन के साथ लूप लिखते हैं, तो संभावना है कि ऐसा फ़ंक्शन पहले से मौजूद है। निम्नलिखित कार्यों vectorized कोड में अक्सर होते हैं:
सूचकांक हेरफेर
* find
* sub2ind
* ind2sub
* sort
* unique
* lookup
* ifelse/merge
दोहराव
* repmat
* repelems
vectorized अंकगणित
* sum
* prod
* cumsum
* cumprod
* sumsq
* diff
* dot
* cummax
* cummin
उच्च आयामी सरणियों
* reshape
* resize
* permute
* squeeze
* deal
भी उदाहरण के साथ कुछ और मार्गदर्शन के लिए एक स्टैनफोर्ड एमएल विकि से इन पृष्ठों को देखने के आकार।
http://ufldl.stanford.edu/wiki/index.php/Vectorization
http://ufldl.stanford.edu/wiki/index.php/Logistic_Regression_Vectorization_Example
http://ufldl.stanford.edu/wiki/index.php/Neural_Network_Vectorization
आप GLM पर व्याख्यान लिए एक लिंक प्रदान कर सकते हैं? – justis
स्टैनफोर्ड में प्रोफेसर एंड्रयू एनजी की एमएल कक्षा की सौजन्य: http://cs229.stanford.edu/materials.html - जीएलएम और सॉफ्टमैक्स रिग्रेशन सामग्री लेक्चर 1 के अंत में पाई जाती है – oort