我正试图出于多种目的编写GUI,如下所示:
其中之一是根据用户通过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"
,因此不会保存数据。
还需要什么?
答案 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
。