1

我试图弄清楚如何在 uitable 中分配值。我自动从我的数据矩阵中获取了表格大小,我可以根据需要在前两列中定义值,但我不知道如何填充第三列。可以手动填写此列吗?在尝试填充第三列时,我收到警告:此位置的表格数据不可编辑。

感谢您的帮助。

a = text2(:,(1:c11));
b = in_matrix(1,(1:c11));
cnames = {'Name','Name','Value'};
rnames = 1:c11;
Data = transpose(a);
f = figure('Position', [100 100 500 500]);
t = uitable('Parent', f, 'Position', [50 100 300 400],...
        'Data',Data,...
        'ColumnName',cnames,...
        'RowName',rnames,...
        'Enable','on',...
        'Visible','on');   
set(t,'ColumnFormat',{'char','char','numeric'});
set(t,'ColumnEditable',[false,false,true]);   

在此处输入图像描述

4

1 回答 1

0

首先,不要text用作变量名,因为它是一个内置函数,会引起麻烦。其次,这是我认为你到目前为止所拥有的:

content = {'neuer Schaufeltyp'         '[]'    [     0.8]; ...
'Geometrienummer'           '[]'    [ 0.16667]; ...
'neuer Bearbeitungstyp'     '[]'    [ 0.29231]; ...
'D'                         '[]'    [0.066667]; ...
'L1'                        '[]'    [ 0.73529]; ...
'Schneiden'                 '[]'    [     0.1]; ...
'fz'                        '[]'    [     0.1]; ...
'Einstellwinkel'            '[]'    [       0]; ...
'Schneidenradius'           '[]'    [       0]; ...
'Kühlung'                   '[]'    [ 0.33333]; ...
'GleichGegen'               '[]'    [       1]; ...
'Verh. D-WZ/Eingriffsbr'    '[]'    [       0]; ...
'neuer Werkstoff'           '[]'    [ 0.11111]}.';

c11 = 13;
a = content(:,(1:c11));
cnames = {'Name','Name','Value'};
rnames = 1:c11;
Data = a.';
f = figure('Position', [100 100 500 500]);
t = uitable('Parent', f, 'Position', [50 100 300 400],...
        'Data',Data,...
        'ColumnName',cnames,...
        'RowName',rnames,...
        'Enable','on',...
        'Visible','on');

现在我有点困惑,你想填第二栏还是第三栏?你想通过代码还是手动完成?

要手动填充第三列,您需要使用属性使其可编辑ColumEditable,而是定义ColumnFormat

set(t,'ColumnFormat',{'char','char','numeric'})
set(t,'ColumnEditable',[false,false,true])

或者在开始时与所有其他属性一起执行。

你得到你的表,你可以在第三列中手动插入值(我总是插入 42。):

在此处输入图像描述

于 2015-01-26T12:13:23.420 回答