हाँ यह संभव है, लेकिन यह हैकिंग का एक सा की आवश्यकता है में बनाया को भेजी जाती हैं चाहता है में बहुत उपयोगी होगा। यह आवश्यक है कि आप कुछ फ़ंक्शन हैंडल के आसपास प्रतिलिपि बनाएँ।
प्रश्न में दिए गए उदाहरण का उपयोग करके मैं दिखाता हूं कि उपयोगकर्ता परिभाषित फ़ंक्शन में फ़ंक्शन openvar
को कैसे लपेटना है जो इनपुट चर के आकार की जांच करता है और फिर उपयोगकर्ता को चर के लिए किसी भी खुले ऑपरेशन को रद्द करने की अनुमति देता है।
इसके अतिरिक्त, यह काम करना चाहिए जब उपयोगकर्ता Matlab IDE के वर्कस्पेस फलक में एक चर को क्लिक करता है।
हमें तीन चीजें करने की आवश्यकता है।
- मूल
openvar
समारोह
- आवरण समारोह है कि
openvar
- कॉल को परिभाषित करें हमारे नए कार्य करने के लिए मूल
openvar
नाम पुन: निर्देशित करने के लिए एक संभाल प्राप्त करें।
उदाहरण समारोह
function openVarWrapper(x, vector)
maxVarSize = 10000;
%declare the global variable
persistent openVarHandle;
%if the variable is empty then make the link to the original openvar
if isempty(openVarHandle)
openVarHandle = @openvar;
end
%no variable name passed, call was to setup connection
if narargin==0
return;
end
%get a copy of the original variable to check its size
tmpVar = evalin('base', x);
%if the variable is big and the user doesn't click yes then return
if prod(size(tmpVar)) > maxVarSize
resp = questdlg(sprintf('Variable %s is very large, open anyway?', x));
if ~strcmp(resp, 'Yes')
return;
end
end
if ischar(x) && ~isempty(openVarHandle);
openVarHandle(x);
end
end
एक बार इस समारोह तो परिभाषित किया गया है तो आप बस एक स्क्रिप्ट निष्पादित करने के लिए कि
openvar
- नामित किसी भी चर साफ़ करता है की जरूरत है सेटअप करने के लिए
openVarWrapper
स्क्रिप्ट चलाने कनेक्शन
- मूलइंगित करें
उदाहरण स्क्रिप्ट openVarWrapper
रहे हैं: तुम सब कुछ साफ करने के लिए चाहते हैं जब
clear openvar;
openVarWrapper;
openvar = @openVarWrapper;
अंत में आप बस फोन कर सकते हैं:
clear openvar;
मैं आपके द्वारा अन्य प्रश्न पर पोस्ट किए गए उत्तर से सहमत हूं (http://stackoverflow.com/questions/11779511/how-to-interrupt-matlab-ide-when-it-hangs-on-displaying-very-large- सरणी) उस प्रश्न स्लैटन के लिए अच्छा है, लेकिन सामान्य प्रश्न का एक बेहतर उत्तर है - नीचे देखें। – jmetz