मुझे पता है कि यह अनाम कार्य नहीं है, लेकिन एक पहेली के रूप में मैंने अज्ञात कार्यों के माध्यम से एक पुनरावर्ती कार्य करने की कोशिश की। रिकर्सिव कार्यों का प्रोटोटाइप स्पष्ट रूप से फैक्टोरियल फ़ंक्शन है। समस्या यह है कि अज्ञात कार्यों के भीतर केस भेद बनाना मुश्किल है। क्या मैं अब तक क्या करने में कामयाब पीछा कर रहा है:रिकर्सिव बेनामी फ़ंक्शन Matlab
[email protected](cn,n,f)eval('if n>1; f(cn*n,n-1,f);else;ans=cn;end');
[email protected](n)f(1,n,f);
या वैकल्पिक रूप से:
[email protected](cn,n,f)eval('if n>1; f(cn*n,n-1,f);else;disp(cn);end');
[email protected](n)f(1,n,f);
क्या बहुत संतोषजनक नहीं है कि आप अभी भी जब सीधे बताए इस सुविधा का उपयोग नहीं कर सकता है, a=f(3)
अभी भी त्रुटि पैदा करता है, चूंकि को कोई मूल्य नहीं मिलता है।
तो मेरा सवाल यह है कि, क्या आप वास्तव में अनाम कार्यों के माध्यम से एक पुनरावर्ती कार्य कर सकते हैं उदा। फैक्टोरियल की गणना इस तरह से करता है जो उदा। a=f(3)
केवल मूल matlab फ़ंक्शंस पर निर्भर है (या आप कमांड लाइन में बना सकते हैं, जैसा कि मैंने अपने उदाहरण में किया था)?
पीएस: मुझे पता है कि इसका कोई व्यावहारिक उपयोग नहीं है, यह एक चुनौती है कि आप मैटलैब के वाक्यविन्यास को कितना मोड़ और दुरुपयोग कर सकते हैं।
क्या आपका मतलब अनाम कार्य है? फंक्शन हैंडल मेरे लिए ऑब्जेक्ट्स का एक विस्तृत वर्ग प्रतीत होता है। लेकिन मैं एक विशेषज्ञ नहीं हूं, इसलिए मैं वास्तव में पूछ रहा हूं। –
@AndrasDeak निश्चित रूप से मैं करता हूं, इसे इंगित करने के लिए धन्यवाद! – flawr
इस समय कोई Matlab एक्सेस नहीं है, लेकिन क्या आपने ऐसा कुछ करने की कोशिश की है, 'अगर n> 1; च (सीएन * n, n-1, च); अन्य; cn; end'? – patrik