1

複数行の編集ボックスがある GUI を作成しています。

ユーザーは、一度にこの編集ボックスに 3 つの xy 座標を入力する必要があります。

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

プッシュボタンをクリックして、これらの座標をMatlab GUIワークスペースに行列の形で「保存」し、別のプッシュボタンをクリックしてワークスペースから「リロード」して、将来使用できるようにします。

どうやってやるの?

誰でもこれで私を案内できますか?助けていただければ幸いです!

4

2 に答える 2

1

GUIDE で生成された GUI でデータを管理するには、さまざまな方法があります。最も簡単な 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

スクリーンショット

「ワークスペース」との間でデータをエクスポート/インポートする場合は、ASSIGNIN/EVALIN 関数を使用できます。

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

handles.M = evalin('base','M');
于 2012-07-29T01:00:20.590 に答える
0

データを保存するには:

setappdata(h,'name',value) 

データをロードするには:

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

ここで、h はデータを格納するハンドル、name はデータの変数、value は実際のデータです。

于 2012-08-01T19:46:12.797 に答える