如何将 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,'%6dt%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 之类的东西。

我实际上制作了一个快速的 youtube 视频来回答你的问题,所以如果你想看,你可以(我在那里更深入,但它的目的是更笼统):

https://youtu.be/GQtYAT36CZ4

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

编辑:我在您的问题中注意到,您的部分问题与文本框的字符串与双重性质有关。我在这里建议的方法会在转换为双倍后切入。没有任何方法可以摆脱这个问题,除非您使用输出为双精度的 gui 元素。

相关内容

  • 没有找到相关文章

最新更新