MATLAB

2011-11-16 14 views
8

में अतिरिक्त इंफिक्स ऑपरेटरों को परिभाषित करना MATLAB में अतिरिक्त इन्फिक्स ऑपरेटरों को परिभाषित करने का कोई तरीका है?MATLAB

विशेष रूप से, मैं दो इन्फ़िक्स ऑपरेटरों -> और <-> का निर्धारण कैसे करेंगे (इन प्रतीकों आदर्श होगा, लेकिन यह यदि आवश्यक हो तो एक भी चरित्र हो सकता है) है, जो काम करता है उसी तरह से implies और iff फोन कि & कॉल and और + कॉल plus

function z = implies(x, y) 
    z = ~x|y; 

function z = iff(x, y) 
    z = x&y | ~x&~y; 

यदि आवश्यक हो तो logical अधिभारित करने में मुझे खुशी है।

उत्तर

5

MATLAB में नए ऑपरेटरों को परिभाषित करने का कोई तरीका नहीं है क्योंकि this one जैसे कई धागे सुझाते हैं। हालांकि, अगर आप अधिभार अपने मौजूदा ऑपरेटर के लिए कक्षा चाहते हैं, तो यहां MATLAB का documentation page है, हालांकि मुझे यकीन है कि आप इसे पहले ही देख चुके हैं।

+0

मैंने सोचा कि शायद यह सच था - बस उम्मीद है कि किसी के पास एक चालाक हैक है जो इसे प्राप्त कर सकता है। ओह ठीक है :( –

+1

दिए गए लिंक में से कोई भी आजकल काम नहीं कर रहा है ..... अपडेट आवश्यक है? – hyprfrcb

2

operator का उपयोग करने के बारे में क्या? इसका उपयोग नए उपयोगकर्ता परिभाषित ऑपरेटर प्रतीकों को परिभाषित करने या उन्हें हटाने के लिए किया जाता है।

operator(symb, f, T, prio) प्राथमिकता prio साथ प्रकार T का एक नया ऑपरेटर प्रतीक symb परिभाषित करता है। फ़ंक्शन f नए ऑपरेटर का उपयोग करके अभिव्यक्तियों का मूल्यांकन करता है।

ऑपरेटर प्रतीक, मूल्यांकन समारोह f, निम्नलिखित भाव, पार्सर द्वारा बनाया जाता है ऑपरेटर के प्रकार के आधार के साथ देखते हुए "++" कहते हैं,:

उपसर्ग: इनपुट ++ x एफ (एक्स) में परिणाम।

पोस्टफ़िक्स: इनपुट x ++ परिणाम f (x) में परिणाम।

बाइनरी: इनपुट x ++ y ++ z में परिणाम f (f (x, y), z)।

नारी: इनपुट x ++ y ++ z में परिणाम f (x, y, z))।

ऊपर दिए गए लिंक में मैटलैब के दस्तावेज़ों पर और देखें।

+0

+1 इस अच्छे समाधान के लिए। दया केवल हाल ही में मैटलैब संस्करणों पर उपलब्ध है ... – Shai

+2

यह सही होगा अगर 'ऑपरेटर' कोर MATLAB का हिस्सा है, लेकिन यह सिंबलिक टूलबॉक्स का हिस्सा है। –