2011-06-27 14 views
5

मैटलैब की एक अच्छी संपत्ति है जो स्केलर फ़ंक्शंस (जैसे पाप) सरणी के किसी भी तत्व पर परिचालन करने और परिणामस्वरूप सरणी लौटने पर सरणी पर काम कर सकती है।Matlab - सरणी के प्रत्येक तत्व के लिए पैरामीटर के साथ एक फ़ंक्शन चला रहा है?

मेरे पास स्केलर फ़ंक्शन f(x,p) है जहां x एक स्केलर है, और p एक पैरामीटर (वास्तव में पैरामीटर की एक सरणी) है। एक निश्चित पैरामीटर p दिया गया है, मैं f(x,p) को सरणी A पर चलाने की इच्छा रखता हूं। रूबी की तरह एक भाषा में यह इस तरह दिखेगा:

A.collect{|x| f(x,p)} 

लेकिन मैं कैसे काम करता है कि मापदंडों और सरणी मैं पर काम करना चाहते से न केवल अदिश स्वीकार के लिए Matlab में यह करने के लिए पता नहीं है।

+0

[MATLAB में मानचित्र फ़ंक्शन का संभावित डुप्लिकेट]] (http://stackoverflow.com/questions/983163/map-function-in-matlab) – Amro

उत्तर

7

MATLAB समकक्ष केवल एक ही तर्क लेने वाले फ़ंक्शन हैंडल की आपूर्ति करना है, और इसे arrayfun पर भेजना है।

arrayfun(@(x) f(x, p), A) 

उदाहरण के लिए,

A = 1:10; 
p = 2; 
arrayfun(@(x) x.^p, A) 

ध्यान दें कि anonymous function एक बंद बनाता है, p का मूल्य पर कब्जा।

संबंधित मुद्दे