方括号内的表达式中的所有表格必须有相同的变量名。

问题描述 投票:0回答:1

我在应用程序设计器中有两个可编辑的数字字段和一个表格;用户可以在这些可编辑的字段中输入值,然后按下按钮。然后,这些值被添加到一个表格中。另外,我还提供了一个选项来附加一个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

注意:这些只是函数中的部分,我试图将数值组合起来。

谁能帮帮我?

谢谢你的帮助

matlab matlab-guide matlab-deployment
1个回答
1
投票

错误信息告诉你 table 只允许您在使用 'VariableNames' 属性相匹配。这在这里有记载。https:/www.mathworks.comhelpmatlabrefvertcat.html#btxzag0-1 .

在你的第一个代码示例中,表 nr 将有变量名 xy (由你用来构造表的底层变量的名称导出)。你可以通过这样做来解决这种情况。

% 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
© www.soinside.com 2019 - 2024. All rights reserved.