- Create the UITABLE using numeric data, setting the ColumnFormat option, which supports similar options as format does (long, short, bank, etc).
- Create a cell array of character vectors from the numeric data and use that cell array to create the UITABLE.
Uitable data converison for user precision
7 次查看(过去 30 天)
显示 更早的评论
Hello, I have a uitable with double values:
data =
374.35 406.81 383.00 336.46 297.88
436.10 362.88 303.35 245.88 199.66
189.35 200.21 218.86 223.13 204.46
341.85 322.08 288.71 239.71 203.11
I am wanting to display these in the uitable with only 1 decimal place (they are currently displayed as 4 decimal places)
I found the following on this site:
%Convert to user precision
data = get(t, 'data')
class(data)
for i = 1:numel(data)
% if(isnumeric(data{i}))
tempStr = sprintf('%2.4g', data{i});
data{i} = tempStr;
% end
end
set(t, 'data', data);
However I get the error "Cell contents referenced from a non-cell array object" in this line tempStr = sprintf('%2.4g', data{i});
0 个评论
采纳的回答
Stephen23
2019-2-24
编辑:Stephen23
2019-2-24
Your data is numeric, not a cell array.
You already answered your own question when you wrote "I have a uitable with double values..:"
You originally created the UITABLE with numeric data, so its data will still be numeric when you access it later. It will not change into a cell array.
"I found the following on this site: "
That code applies to a UITABLE that was created using a cell array, so its data will still be a cell array when it is accessed later. It appears that you got that code from this thread, where data is clearly defined as a cell array:
There are two ways to control the format of numeric data shown in a UITABLE:
Only the second option lets you specify an arbitrary number of decimal digits and total control over the formatting.
3 个评论
Stephen23
2019-2-24
@Jason: why not just use repmat?:
C = repmat({'yourFormatChoice'},1,numberOfColumns);
uitable(...., 'ColumnFormat',C)
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Data Type Conversion 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!