How to display workspace results with certain digits
3 次查看(过去 30 天)
显示 更早的评论
Hi all.
I have a program that calculates temperatures and pressures. My results look like this: T=298.3456 etc and P=2.38947 I have written a program in order to display these results in a graph but I don't want them to show up with so many digits! Anyone knows how to do this? For example, make them show up like T=298 and P=2.40??
0 个评论
回答(2 个)
Jan
2015-5-21
Simply round the values to n digits:
round(x * 10^n) / 10^n
There are many other tools for rounding to significant digits e.g. in the FileExchange. Use the methods to search there or in the internet.
Thorsten
2015-5-21
num2str(P, '%.2f')
num2str(T, '%.0f')
2 个评论
Thorsten
2015-5-22
I'm not sure if that's what you are looking for, but you can use the following syntax
num2str([T.w.hp T.w.lp T.eg.in], '%.2f ')
If you structure T contains only numerical data that you like to be printed in the same format, you can use
num2str(flatten(y), '%.2f ')
with my flatten function
function [y, me] = flatten(x)
%FLATTEN Flatten numeric data (ND matrices or arbitrarily nested cells)
%
% [Y, ME] = FLATTEN(X)
%
%Sample usage:
% C = {1; {2,3}; {4,5}; {6,{7,8}}}
% flatten(C)
%
% S.pos.x = 10; S.pos.y = 12; S.id = 23; S.pos.q.offset = 0.1;
% flatten(S)
%
% Thorsten.Hansen@psychol.uni-giessen.de 2015-05-21
if iscell(x)
y = [];
for i = 1:numel(x)
try
xi = cell2mat(x{i});
catch me
xi = flatten(x{i});
end
y(end+1:end+numel(xi)) = xi;
end
elseif isstruct(x)
y = flatten(struct2cell(x));
else
y = x(:);
end
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!