我在Matlab上关注过很多关于数字格式的帖子。现在我已经设置了Matlab,以便可以按单元格填充表格。我希望第一列保持12位数字,所以我将格式设置为longG。 Matlab uitable拒绝接受我的格式,令人沮丧的是,在命令窗口中,所有数字都显示最多15位,格式为longG选项。这是样本;
colNam={'W','X','Y','Z'};
t=uitable('ColumnName',colNam,'Data',zeros(4),'ColumnEditable',...
[true true true true],'ColumnWidth',{150,'auto'},...
'ColumnFormat',{'numeric'});
set(t,'ColumnFormat',{'longG'});
我知道sprintf和fprintf,如其他地方所述。但是我们拒绝意识到的是,这些将数字的类别从double更改为char。如果你想设置表格,使其动态增加1,那么该怎么办?为此,我们无法为char添加double。请这令人沮丧。有什么建议?谢谢。
答案 0 :(得分:1)
没有名为“longG”的ColumnFormat属性,你看到了吗? 您可以操作Uitable的Java部分以便真正显示数值......但我认为最好(也是最简单)的方法是使用char。
如果你想增加数值,只需先将其转换为数字,然后再增加,然后将其转换回来。
答案 1 :(得分:0)
根据John的建议,我提出了这个代码,我可以将表设置为接受任意数量的数字。
f=figure;
dat=[101100220001;101100220002;101100220003;101100220004;101100220005];
colNam={'W'};
t=uitable('ColumnName',colNam,'Data',dat,'ColumnEditable',...
[true],'ColumnWidth',{150},'pos',[5 250 200 120]);
newdat=get(t,'Data');
newdat=strtrim(cellstr(num2str(newdat))); %Convert data to cell array of strings
tt=uitable('ColumnName',colNam,'Data',newdat,'pos',[300 250 200 120]);