uitable的内容未保存

时间:2019-04-28 00:46:31

标签: matlab user-interface user-input matlab-guide matlab-uitable

我正试图出于多种目的编写GUI,如下所示: enter image description here 其中之一是根据用户通过uitable的输入创建矩阵,因此在untitled_OpeningFcn中预先定义了大小并启用了单元格版本

set(handles.uitable1,'Data',cell(2,3));
set(handles.uitable1,'ColumnEditable',true(1,3))

pushbutton2_Callback内,我尝试读取表中写入的数据,将其存储并显示在静态文本字段中:

value=get(handles.uitable1,'Data');
value=str2double(value);
set(handles.text2,'String',num2str(value));

但是在运行时,文本字段显示"NaN",因此不会保存数据。

还需要什么?

更新 提问者的感谢,它没有给出预期的结果 使用原始代码时,它将提供下一个输出 enter image description here
当我使用建议的mat2str时得到了这个
enter image description here

1 个答案:

答案 0 :(得分:2)

我相信您遇到问题的原因是线路

value = get(handles.uitable1,'Data');

不会导致任何可转换为数字的内容。 考虑以下示例:

hF = uifigure(); % works the same way with `figure()`.
hT = uitable(hF,'Data',[1 2 3; 4 5 6]);

然后,考虑以下事项:

>> hT.Data
ans =
     1     2     3
     4     5     6

>> class(hT.Data)
ans =
    'double'

>> str2double(hT.Data)
ans =
   NaN

>> mat2str(hT.Data)
ans =
    '[1 2 3;4 5 6]'

最后,您可能需要mat2str