मैं एक Matlab स्क्रिप्ट है कि डेटा में पढ़ता वास्तविक समय में एक आभासी कॉम पोर्ट का उपयोग कर लिखा है अद्यतन करने के लिए चाहते हैं। मैंने एक एमफाइल में सिग्नल प्रोसेसिंग की एक महत्वपूर्ण मात्रा की है।मैटलैब GUI का उपयोग गाइड: गतिशील रूप से रेखांकन
अगला, मुझे एक कॉम्पैक्ट जीयूआई रखने की आवश्यकता महसूस हुई जो जानकारी को सारांश के रूप में प्रदर्शित करता है।
मैंने हाल ही में मैटलैब के अंतर्निहित जीयूआई उपकरण, गाइड के खुदाई और पढ़ना शुरू कर दिया है। मैंने कुछ ट्यूटोरियल्स का पालन किया है और बटन-प्रेस के बाद मेरे जीयूआई पर प्रदर्शित करने के लिए सफलतापूर्वक अपने ग्राफ प्राप्त करने में सक्षम हूं।
हालांकि, मैं GUI वास्तविक समय में अद्यतन करने के लिए चाहता हूं। मेरा डेटा वेक्टर लगातार अपडेट हो रहा है (COMM पोर्ट से डेटा में पढ़ रहा है)। मैं चाहता हूं कि जीयूआई को नए डेटा के साथ ग्राफ अपडेट करने के लिए, अद्यतन के लिए बटन दबाए जाने के विरोध में चाहते हैं। क्या कोई मुझे पृष्ठभूमि अद्यतन के लिए सही दिशा में इंगित कर सकता है?
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global data
global time
% Time domain plot
axes(handles.timeDomainPlot);
cla;
plot (time, data);
संपादित बदला गया कोड:
यहाँ जीयूआई के लिए प्रासंगिक कोड वर्तमान में है
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%Setting it to display something when it ends
% t = timer('TimerFcn', 'timerOn=false; disp(''Updating GUI!'')',...
t = timer(...
'TasksToExecute', 10, ... % Number of times to run the timer object
'Period', 3, ...
'TimerFcn', GUIUpdate());
%Starting the timer
start(t)
function GUIUpdate()
global data
global time
%Parameters below axes
global min
global max
% Time domain plot
axes(handles.timeDomainPlot);
cla;
plot (time, data);
%Other parameters:
set(handles.mean, 'String', mean);
set(handles.max, 'String', max);
त्रुटि है कि मैं मिलता है:
??? Error using ==> GUI_Learning>GUIUpdate
Too many output arguments.
Error in ==>
@(hObject,eventdata)GUI_Learning('pushbutton1_Callback',hObject,eventdata,guidata(hObject))
??? Error while evaluating uicontrol Callback
संभावित डुप्लिकेट: http://stackoverflow.com/questions/1007385/getting-matlab-timer-to-update-matlab-guide-gui – Nzbuu
@ c0d3rz timerfcn कॉलबैक को परिभाषित करने के बारे में इस लिंक को देखें http: // www। mathworks.com/help/techdoc/matlab_prog/f9-39541.html#f9-42494 @GUI अद्यतन करने के लिए 'timerfcn' सेट करने और GUIUpdate को बदलने का प्रयास करें ताकि इसमें दो इनपुट 'GUIUpdate (obj, event) 'हो। 'ओबीजे' टाइमर ऑब्जेक्ट के लिए हैंडल होगा और 'इवेंट' के बारे में कुछ विवरण होगा कि इसे कैसे कहा जाता था। डिफ़ॉल्ट टाइमर फ़ंक्शन कॉलबैक कम से कम उन दो तर्कों को पारित किया जाएगा। मुझे यकीन नहीं है कि यह आपकी त्रुटि का सही कारण है लेकिन आपका नमूना सही नहीं दिखता है। अगर मुझे बाद में मौका मिलता है तो मैं एक उदाहरण टाइमर पोस्ट करने की कोशिश करूंगा। –