User interface 如何在MATLAB中从gui中获取空间分隔的双数组

User interface 如何在MATLAB中从gui中获取空间分隔的双数组,user-interface,matlab,matlab-figure,matlab-guide,User Interface,Matlab,Matlab Figure,Matlab Guide,嗨,我有一个MatlabGUI,它采用空间分隔数组(双精度或整数),当GUI按钮单击时,我需要将这些数据传递到同一目录中的另一个单独的.m文件中。在按钮CALU回调中,我尝试检索数据 function button_cal_Callback(hObject, eventdata, handles) 我尝试了几种方法,但都失败了。以下代码是我的尝试。S是我为分配数据而创建的新变量,edit_S是编辑文本标签标记值 S = guidata(handles.edit_S,'array'); S =

嗨,我有一个MatlabGUI,它采用空间分隔数组(双精度或整数),当GUI按钮单击时,我需要将这些数据传递到同一目录中的另一个单独的.m文件中。在按钮CALU回调中,我尝试检索数据

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 1713 1738 1763 1788 1819
它应该如何传递到第二个M文件>>[1638 1500 1688 1688 1688 1688 1688 1713 1738 1763 1788 1819]

thusharaK-我将尝试描述为什么上面的每一次尝试都不能真正实现您想要的

S = guidata(handles.edit_S,'array');
检查文档中是否有错误。此函数仅用于使用用户定义的GUI数据获取或设置(更新)句柄结构。默认情况下,句柄包括GUI小部件的所有句柄,以及您决定添加的任何数据。上面的代码行试图使用编辑文本小部件的句柄保存字符串“array”。这实际上将覆盖所有句柄数据

在这里,hObject是按钮句柄,因此与编辑文本小部件无关。get(hObject,'someField')从hObject获取someField属性。如果它不存在,如本例中所示,则生成一个错误

S = str2double(get(handles.edit_S,'string'));
这几乎就是你想要的。使用编辑句柄,您试图获取与文本编辑小部件中写入的文本相关联的字符串数据。但是它可能作为单元格返回,因此必须在str2num(或str2double)之前将单元格数组转换为字符数组

这将生成值数组,您现在可以将其传递给下一个函数。试试这个,看看会发生什么

S = str2double(get(handles.edit_S,'string'));
numericData = str2num(char(get(handles.edit_S,'string')));