您好我有一个Matlab GUI,它采用空格分隔数组(双或整数),当点击GUI按钮时,我需要将这些数据传递到同一目录中的另一个单独的.m文件。在button_cal_Callback中,我尝试检索数据。
function button_cal_Callback(hObject, eventdata, handles)
我尝试了几种方法,但我失败了以下代码是我的尝试。 S是我为分配数据而创建的新变量,edit_S是编辑文本标签标记值。
S = guidata(handles.edit_S,'array');
S = get(hObject,'edit_S');
S = str2double(get(handles.edit_S,'string'));
以上代码中没有一个对我有用,请告诉我如何从前端获取此值......
输入的示例值>> S = 1638 1500 1688 1688 1688 1688 1688 1713 1738 1763 1788 1819 如何传递给第二个M文件>> [1638 1500 1688 1688 1688 1688 1688 1713 1738 1763 1788 1819]
答案 0 :(得分:1)
ThusharaK - 我将试着描述为什么上述每一次尝试都没有真正做到你想要的。
S = guidata(handles.edit_S,'array');
查看guidata的文档。此函数仅用于使用用户定义的GUI数据获取或设置(更新)句柄结构。默认情况下, handle 包括GUI小部件的所有句柄,以及您决定添加的所有数据。上面的代码行是尝试使用编辑文本小部件的句柄保存字符串'array'。这实际上会覆盖所有句柄数据!
S = get(hObject,'edit_S');
这里, hObject 是按钮句柄,因此与编辑文本小部件无关。 get(hObject,'someField')从hObject获取someField属性。如果它不存在(如本例所示),则会生成错误。
S = str2double(get(handles.edit_S,'string'));
这几乎就是你想要的。使用 edit_S 句柄,您尝试获取与文本编辑小部件中写入的文本相关联的 String 数据。但它可能作为单元格返回,因此您必须在 str2num (或 str2double )之前从单元格数组转换为字符数组
numericData = str2num(char(get(handles.edit_S,'string')));
这应该生成您现在可以传递给下一个函数的值数组。试试这个,看看会发生什么!