我在应用程序设计器中有两个可编辑的数字字段和一个表格;用户可以在这些可编辑的字段中输入值,然后按下按钮。然后,这些值被添加到一个表格中。另外,我还提供了一个选项来附加一个excel文件夹,该文件夹应该有两个列来反映在表上。这两个单独的工作完全正常,但是,如果我手动添加值,然后附加一个excel文件夹,或者反之亦然,我得到以下错误。方括号内表达式中的所有表格必须有相同的变量名.处理可编辑字段的函数。
app.t = app.UITable.Data;
x = app.xvalueEditField.Value;
y = app.yvalueEditField.Value;
nr = table(x, y);
app.UITable.Data = [app.t; nr]; %% error happens here if I attach excel then add manually
app.t = app.UITable.Data;
excel文件夹的函数。
text = readtable([pathname filename], "Sheet",1, 'ReadVariableNames',false);
fl = cellfun(@isnumeric,table2cell(text(1,:)));
if (numel(fl(fl == false)) > 0)
flag = false;
else
flag = true;
end
if (flag)
A = [app.t; text]; %% error happens here if I add manually then attach
app.UITable.Data = A;
app.t = text;
end
注意:这些只是函数中的部分,我试图将数值组合起来。
谁能帮帮我?
谢谢你的帮助
错误信息告诉你 table
只允许您在使用 'VariableNames'
属性相匹配。这在这里有记载。https:/www.mathworks.comhelpmatlabrefvertcat.html#btxzag0-1 .
在你的第一个代码示例中,表 nr
将有变量名 x
和 y
(由你用来构造表的底层变量的名称导出)。你可以通过这样做来解决这种情况。
% force nr to have the same VariableNames as app.t:
nr = table(x, y, 'VariableNames', app.t.Properties.VariableNames);
而在第二种情况下,你可以强制 text
要有正确的变量名,比如这样。
text.Properties.VariableNames = app.t.Properties.VariableNames