如何将gui中的一些值保存到文本文件中并将其作为数字加载到别处?

时间:2018-03-17 22:30:11

标签: matlab matlab-guide matlab-gui

我有一个编辑框中的2个值,我想按下按钮时将它们写在txt文件中

function Masaedit_Callback(hObject, eventdata, handles)
% hObject    handle to Masaedit (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB

function Arias_Callback(hObject, eventdata, handles)
% hObject    handle to Arias (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


function pushbutton7_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton7 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA

 m=str2double(get(handles.Masaedit, 'string'));
  assignin('base','m',m)

  A=str2double(get(handles.Arias, 'string'));
  assignin('base','A',A)
  twovalues = fopen('twovalues.txt','w');
  fprintf(twovalues,'%6d\t%3d',m,A);
  fclose(twovalues);

但我想将它们保存为:

m=value;
A=value;

保存值后,我想在以下函数中加载文本文件:

function xypr=twovalues (m,A)

CD=1;

load ('twovalues.txt',m,A)
ad=(-1/2)*((CD*A)/m);
end

但这似乎有点棘手,我不知道应该如何进行转换,因为对于A,m =我需要将它们作为字符串加载,结果我应该使用像str2double这样的东西。

1 个答案:

答案 0 :(得分:-2)

我实际上是根据你的问题做了一个快速的YouTube视频,所以如果你想观察你可以(我在那里进一步深入,但它意味着更一般):

https://youtu.be/GQtYAT36CZ4

否则,简短的回答是,这取决于您是否需要在matlab之外提供的数据。你的方法是将这两者混合在一起 - 通常你应该使用save命令将其设置为不能在matlab外部访问(save('filename.mat','m','A')和load('filename.mat') ,'m','A'))或使用列标题写入csv(例如,使用包含可变量的表的可写和可读表)。请注意,出于答案的目的,csv是一种文本格式。当然可以像你描述的那样使用fprintf,但这确实是最难的方法。我希望有所帮助!

编辑:我在您的问题中注意到您的部分问题与文本框的字符串vs双重性质有关。我建议的方法将在你转换为double后切入。除非你使用输出为double的gui元素,否则没有方法可以解决这个问题。