我关注了很多关于Matlab中数字格式的帖子。现在,我已经将Matlab设置为可以一个单元格一个单元格填充的方式。我希望第一列能够维护最多12位的数字,所以我将格式设置为longG。Matlab uitable拒绝接受我的格式,令人沮丧的是,在命令窗口中,所有的数字都会显示在带有format longG选项的最多15位数字中。这是样本;
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(归功于want ),该怎么办?为此,我们不能在char中添加双精度。求求你这太让人沮丧了。有什么建议吗?谢谢。
发布于 2014-01-24 23:22:27
没有名为"longG“的ColumnFormat属性,你在哪里看到的?您可以操作Uitable的Java部分,以便真正显示数值……但我认为最好(也是最简单)的方法是使用char。
如果您想增加值,只需先将其转换为数字,再增加,然后再将其转换回来。
发布于 2014-01-25 03:21:12
根据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]);https://stackoverflow.com/questions/21327893
复制相似问题