我在编辑框中有 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 元素。