मैं जीयूआई पर काम कर रहा हूं। मैं हैंडल संरचना में बनाए गए अतिरिक्त क्षेत्रों में डेटा स्टोर करना चाहता हूं। हालांकि, मुझे नहीं पता कि कॉलबैक फ़ंक्शन समाप्त होने पर हैंडल संरचना को ठीक से कैसे अपडेट किया जाए। कृपया, कोई सलाह दें।मैटलैब जीयूआई: हैंडल संरचना को कैसे अपडेट करें?
मेरे सरलीकृत कार्यक्रम
- संकेत के सेट संख्या (1-10)। प्रत्येक सिग्नल में 3 पैरामीटर होते हैं।
- हैंडल संरचना (डिफ़ॉल्ट शून्य हैं) में बनाए गए सरणी से चयनित सिग्नल के लिए पैरामीटर पढ़ें।
- पैरामीटर संपादित करें, सरणी अद्यतन करें।
जीयूआई
function simple_gui(hObject, h)
h.fig = figure(...
'Units','pix',...
'Position',[50 50 500 400],...
'Visible','default',...
'Name','GUI',...
'NumberTitle','off',...
'Resize','on');
table = {'1' , '2', '3' , '4', '5', '6', '7', '8', '9', '10' };
h.number = uicontrol(...
'Units','characters',...
'Max',10,...
'Min',1,...
'String',table,...
'Style','popupmenu',...
'Value',1,...
'Position',[37.4 28.3846153846154 19.4 1.61538461538462],...
'BackgroundColor',[1 1 1]);
h.edit1 = uicontrol(...
'Units','pix',...
'String','0',...
'Style','edit',...
'Position',[180 280 50 20],...
'BackgroundColor',[1 1 1],...
'FontSize',10);
h.edit2 = uicontrol(...
'Units','pix',...
'String','0',...
'Style','edit',...
'Position',[180 255 50 20],...
'Children',[],...
'FontSize',10);
h.edit3 = uicontrol(...
'Units','pix',...
'String','0',...
'Style','edit',...
'Position',[180 230 50 20],...
'FontSize',10);
मुख्य कोड:
h.parameter1 = zeros(1,10);
h.parameter2 = zeros(1,10);
h.parameter3 = zeros(1,10);
h.signal_no = 0;
h.number.Callback = {@number_Callback, h};
h.edit1.Callback = {@parameter_change_Callback, h};
h.edit2.Callback = {@parameter_change_Callback, h};
h.edit3.Callback = {@parameter_change_Callback, h};
guidata(h.fig, h);
function number_Callback(hObject,eventdata, h)
h = guidata(hObject);
h.signal_no = hObject.Value;
k = h.signal_no;
h.edit1.String = h.parameter1(k);
h.edit2.String = h.parameter2(k);
h.edit3.String = h.parameter3(k);
guidata(hObject,h);
function parameter_change_Callback(hObject,eventdata, h)
h = guidata(hObject);
k = h.signal_no;
h.parameter1(k) = str2double(h.edit1.String);
h.parameter2(k) = str2double(h.edit2.String);
h.parameter3(k) = str2double(h.edit3.String);
guidata(hObject, h);
आप 'guidata जोड़ने की जरूरत के साथ अद्यतन कोड है , एच); 'आपके समारोह के अंत में। आपको अपने फ़ंक्शन 'फ़ंक्शन simple_gui (hObject, h)' – Anthony
@ एंथनी में दो इनपुट जोड़ने की भी आवश्यकता है, मैंने आपके द्वारा उल्लेखित आदेश जोड़े, लेकिन इससे मदद नहीं मिली। मुझे एक त्रुटि "अस्तित्वहीन क्षेत्र का संदर्भ 'पैरामीटर 1'" मिलता है। हालांकि, जब मैंने GUIDE का उपयोग करके समान प्रोग्राम लिखा था तो यह ठीक काम करता है। लेकिन मैं कोड प्रोग्रामेटिकल लिखना पसंद करता हूं और मैं सीखना चाहता हूं कि इसे कैसे काम करना है। –
क्षमा करें, मेरा सुझाव बहुत गलत था। मैंने आपके कोड को गलत समझा। मैं बाद में अपना कोड जांचूंगा, अगर इसका अभी भी उत्तर नहीं दिया गया है – Anthony