में फ़ंक्शन पैरामीटर लॉगिंग मैं MATLAB में किसी फ़ंक्शन को पास किए गए सभी इनपुट पैरामीटर के लिए एक सामान्यीकृत लॉगिंग फ़ंक्शन लिखने की कोशिश कर रहा हूं। क्या पैरामीटर को व्यक्तिगत रूप से नामित किए बिना सभी इनपुट पैरामीटर को किसी अन्य फ़ंक्शन पर आसानी से पास करना संभव है? लॉगिंग फ़ंक्शन में, मैं निश्चित रूप से पैरामीटर नाम प्राप्त करने के लिए लूप में inputname(i)
का उपयोग कर सकता हूं। मैं मुख्य कार्य में इस तर्क को निष्पादित नहीं करना चाहूंगा। तो, LogParams(allInputParams)
जैसे कुछ करने का कोई तरीका है?MATLAB
Q
MATLAB
5
A
उत्तर
8
ऐसा लगता है कि आप एक मुख्य कार्य है, और है कि समारोह से आप चर मुख्य कार्य करने के लिए पारित कर दिया के नामों की एक सूची प्राप्त करने के एक समारोह LogParams
कॉल करना चाहते हैं।
function names = LogParams
names = evalin('caller','arrayfun(@inputname,1:nargin,''UniformOutput'',0)');
end
उत्पादन LogParams
से लौटे चर समारोह है कि LogParams
कॉल करने के लिए पारित कर दिया के नाम वाला कोई कक्ष सरणी हो जाएगा: यहाँ एक तरह से आप अपने समारोह LogParams
को लागू कर सकता है। उपर्युक्त समाधान निम्न कार्यों का उपयोग करता है:
- EVALIN: कॉलिंग फ़ंक्शन के कार्यक्षेत्र में अभिव्यक्ति का मूल्यांकन करने के लिए।
- ARRAYFUN: लूप के विकल्प के रूप में।
- NARGIN: फ़ंक्शन में पास किए गए तर्कों की संख्या प्राप्त करने के लिए।
- INPUTNAME: इनपुट चर का नाम प्राप्त करने के लिए।
कैसे LogParams
काम करता है, निम्नलिखित समारोह है कि यह कॉल बनाने का एक उदाहरण के रूप में:
function main_function(a,b,varargin)
disp(LogParams);
end
और अब (आदानों की एक संख्या चर x
, y
संभालने से कॉल करने, और z
परिभाषित कर रहे हैं वर्कस्पेस में):
>> main_function(x,y)
'x' 'y'
>> main_function(x,y,z)
'x' 'y' 'z'
>> main_function(x,y,z,z,z,z)
'x' 'y' 'z' 'z' 'z' 'z'
संबंधित मुद्दे
- 1. MATLAB: MATLAB
- 2. कैसे MATLAB में MATLAB
- 3. matlab
- 4. MATLAB
- 5. MATLAB
- 6. MATLAB
- 7. matlab
- 8. Matlab
- 9. matlab
- 10. MATLAB
- 11. MATLAB
- 12. MATLAB
- 13. MATLAB
- 14. matlab
- 15. MATLAB
- 16. Matlab
- 17. Matlab
- 18. matlab
- 19. MATLAB
- 20. Matlab
- 21. MATLAB
- 22. MATLAB
- 23. Matlab
- 24. MATLAB
- 25. MATLAB
- 26. matlab
- 27. MATLAB
- 28. MATLAB
- 29. matlab
- 30. matlab
बहुत साफ! .......... (15 अक्षर तक पैड करने के लिए डॉट्स) –
धन्यवाद। यह सहायता करता है। कॉलिंग फ़ंक्शन पर न्यूनतम प्रभाव के लिए –
+1। – Marc