Matlab:如何将数据添加到合适的特定行号
Matlab: How to add data to specific row number in a uitable
问题 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 行,依此类推。一年多来我一直在寻找这个答案,非常感谢您的帮助。
问题二:
假设我有一个 table 具有以下数字
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
使用 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
我写了一个 gui 代码,它给出了下一行,然后显示在 uitable:
combt =
Columns 1 through 5
2000 2530.4 2671.4 2.3 2.6
该行将自动添加到 uitable 中的第 1 行:
因此,如果我的行有 column_1 = 10
,我希望该行出现在 uitable 的第 10 行,依此类推。一年多来我一直在寻找这个答案,非常感谢您的帮助。
问题二:
假设我有一个 table 具有以下数字
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
使用 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));