1

我有 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 的东西。

4

1 回答 1

-1

实际上,我制作了一个快速的 youtube 视频来回答您的问题,因此,如果您想观看,可以观看(我在那里进行了更深入的介绍,但这意味着更笼统):

https://youtu.be/GQtYAT36CZ4

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

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

于 2018-03-18T05:05:36.793 回答