【问题标题】:Matlab: How to add data to specific row number in a uitableMatlab:如何将数据添加到 uitable 中的特定行号
【发布时间】:2016-10-12 12:22:30
【问题描述】:

问题 1

我编写了一个 gui 代码,它给出了以下行,然后将其显示在 uitable 上:

combt =

Columns 1 through 5

2000    2530.4    2671.4    2.3   2.6

此行将自动添加到 uitable 中的第 1 行:

在上面的示例中,我希望将此行添加到第 2000 行(取决于我的数据的第 1 列)。

因此,如果我的行有 column_1 = 10,我希望该行出现在 uitable 的第 10 行,依此类推。一年多来我一直在寻找这个答案,非常感谢您的帮助。

问题 2:

假设我有一张桌子,上面有以下数字

combt =

Columns 1 through 5

1    2630.4    2671.4    5.3   2.6
2    2530.2    2673.4    2.2   6.6
10   2331.4    4671.2    4.3   2.7
11   2550.4    6671.4    2.1   2.8

如何重新排列它们,使第 1 列再次对应于行号,并且空格用零填充:

combt =

Columns 1 through 5

1    2630.4    2671.4    5.3   2.6
2    2530.2    2673.4    2.2   6.6
0    0         0         0     0       (This is row 3)
0    0         0         0     0       (This is row 4)
0    0         0         0     0       (This is row 5)
0    0         0         0     0       (This is row 6)
0    0         0         0     0       (This is row 7)
0    0         0         0     0       (This is row 8)
0    0         0         0     0       (This is row 9)
10   2331.4    4671.2    4.3   2.7
11   2550.4    6671.4    2.1   2.8

【问题讨论】:

    标签: matlab matlab-uitable


    【解决方案1】:

    使用new_d(d(:,1),:)=d 创建新的所需矩阵new_d。这是一个示例代码。

    d = [1    2630.4    2671.4    5.3   2.6; ...
    2    2530.2    2673.4    2.2   6.6; ...
    10   2331.4    4671.2    4.3   2.7; ...
    11   2550.4    6671.4    2.1   2.8];
    
    new_d(d(:,1),:)=d;
    
    % with first column
    f = figure();
    t = uitable(f,'Data',new_d);
    
    % without showing first column
    f1 = figure();
    t1 = uitable(f1,'Data',new_d(:,2:end));
    

    用新数据更新uitable

    %% update table
    % new data containing same first column value 10 and 2 
    d1 = [14    2630.4    2671.4    5.3   2.6; ...   
    18    2530.2    2673.4    2.2   6.6; ...
    10   3333.4    2671.2    3.3   1.7; ...
    2   2331.4    4671.2    4.3   2.7];
    
    % update data 
    new_d(d1(:,1),:)=d1;
    
    % update uitable with first column
    set(t,'Data',new_d);
    
    % update uitable without showing first column
    set(t1,'Data',new_d(:,2:end));
    

    【讨论】:

    • 谢谢。是否可以修改此表,即如果我获得更多行,我想将它们添加到现有表中。另外,我希望在第 1 列中获取的具有相同值的行覆盖旧行。
    • 谢谢,但这仍然会覆盖所有内容,生成一张新表
    猜你喜欢
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多