2012-07-28 32 views
1

我正在製作一個GUI,其中有一個多行編輯框。通過點擊按鈕我想這些座標是在Matlab GUI工作空間「保存」如何在GUI指南中保存編輯框數據?

[345.567 123.123] 
[390.567 178.098] 
[378.000 125.987] 

用戶必須輸入3 XY在一個時間座標,該編輯框以矩陣的形式,並通過從工作空間點擊另一個按鈕「重新加載」,以便它們可用於未來使用。

我該怎麼做?

任何人都可以用這個指導我嗎?幫助將不勝感激!

回答

1

GUIDE生成的GUI中有manage data的許多方法。最簡單的IMO是使用guidata

例如,在「保存」按鈕回調中,您可以訪問編輯框字符串內容,並將其解析爲數字矩陣,並將其保存在handles結構中。

function pushbuttonSave_Callback(hObject, eventdata, handles) 
    handles.M = str2num(get(handles.edit1, 'String')); 
    guidata(hObject, handles); 
end 

接着,在「負載」按鈕,我們做相反,由矩陣從handles結構加載,將其轉換爲字符串,並設置編輯框內容:

function pushbuttonLoad_Callback(hObject, eventdata, handles) 
    s = num2str(handles.M, '%.3f %.3f\n'); 
    set(handles.edit1, 'String',s) 
end 

screenshot

如果你要導出/數據從「工作區」導入/,您可以使用ASSIGNIN/EVALIN功能:

assignin('base','M',handles.M); 

handles.M = evalin('base','M'); 
+0

感謝荷銀對你的幫助,但我所做的是: '函數savepoint_Callback(hObject,EVENTDATA,處理) user_entry = getappdata(handles.edit1, 'yourVariable'); v = get(handles.edit1,'String'); matrix = str2num(v); assignin( '基', 'A',矩陣);' 這個變量 'a' 被存儲在工作區中像矩陣的形式: 一個= 0.3170 0.1272 0.2849 0.2467 0.3419 0.3609 但我無法對'a'執行更多操作。我怎樣才能進一步使用?我可以怎樣做 w1 = a(1,2)+ a(2,2)? 請幫幫我! – Rabs 2012-08-02 05:41:08

0

保存數據:

setappdata(h,'name',value) 

加載數據:

value = getappdata(h,'name') 
values = getappdata(h) 

其中H是手柄您將數據存儲在,名字是的變量數據,值是實際數據。

+0

Xurtio!我的變量'a'存儲在工作區中。但我無法對該變量進行進一步的操作。我可以這樣做嗎?w1 = a(1,2)+ a(2,2)??? – Rabs 2012-08-02 06:03:24

+0

這聽起來更像是一個範圍問題,但現在好像你在問一個不同的問題?如果是這樣,你應該出現一個新的線程,並專注於你原來的問題。 – 2012-08-02 06:23:29

相關問題