如何将 gui 中的一些值保存到文本文件中并将它们作为数字加载到其他地方?
How to save some values from gui into a text file and load them elsewhere as a number?
我有 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 的东西。
我实际上制作了一个快速的 youtube 视频来回答你的问题,所以如果你想观看你可以(我在那里进行了更深入的探讨,但它意味着更笼统):
否则,一个简短的回答是,这取决于您是否需要在 matlab 之外可用的数据。你的方法是混合这两者——通常你应该使用保存命令 (save('filename.mat', 'm', 'A') 和 load('filename.mat'、'm'、'A')) 或写入包含列 headers 的 csv(使用 writetable 和 readtable with a table 例如只包含你的变量)。请注意,出于您的回答目的,csv 是一种文本格式。当然可以按照您的描述使用 fprintf ,但这确实是最难的方法。希望对您有所帮助!
编辑:我在您的问题中注意到您的部分问题与文本框的字符串与双重性质有关。我在这里建议的方法会在您转换为 double 后切入。没有任何方法可以解决这个问题,除非您使用输出为双精度的 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 的东西。
我实际上制作了一个快速的 youtube 视频来回答你的问题,所以如果你想观看你可以(我在那里进行了更深入的探讨,但它意味着更笼统):
否则,一个简短的回答是,这取决于您是否需要在 matlab 之外可用的数据。你的方法是混合这两者——通常你应该使用保存命令 (save('filename.mat', 'm', 'A') 和 load('filename.mat'、'm'、'A')) 或写入包含列 headers 的 csv(使用 writetable 和 readtable with a table 例如只包含你的变量)。请注意,出于您的回答目的,csv 是一种文本格式。当然可以按照您的描述使用 fprintf ,但这确实是最难的方法。希望对您有所帮助!
编辑:我在您的问题中注意到您的部分问题与文本框的字符串与双重性质有关。我在这里建议的方法会在您转换为 double 后切入。没有任何方法可以解决这个问题,除非您使用输出为双精度的 gui 元素。