printmat函数:十进制和百分比

时间:2017-05-15 19:49:34

标签: matlab matrix format output

我是MATLAB的新手。如果我的问题是基本的,我很抱歉。我使用“printmat”函数在命令控制台中显示一些矩阵。例如,printmat(A)和printmat(B),其中A = 2.79和B = 0.45e-7是标量(为简单起见)。

如何将精度任意提高到七位小数?例如:我的输出看起来像2.7943234,B = 0.00000004563432。

如何将货币(比如美元)数字添加到printmat的输出中?

如何将百分比数字(%)添加到printmat的输出中?

注意:我使用printmat的原因是我可以命名我的行和列。如果你知道一个更好的功能可以做到以上所有,我很高兴知道。

2 个答案:

答案 0 :(得分:1)

关心玛丽亚姆。根据我的理解,您希望显示数字并显示其完整精度。我也是新手,如果我可以贡献,你可以使用sprintf函数将数字数据转换为字符串数据(用于显示目的)。

我使用变量A=2.7943234作为示例。此值不会显示完整精度,而是显示2.7943。要显示所有小数点尾部,您可以先通过

将其转换为字符串
a = sprintf('%0.8f',A);

它会将值a设置为字符串'2.79432340'%0.8f表示您希望它显示8个十进制尾部。对于此示例,%0.7f当然就足够了。

另一个例子:A=0.00000004563432,使用%0.14f

A=0.00000004563432; 
a=sprintf('%0.14f $ or %%',A);

输出应为:'0.00000004563432 $ or %'

您可以在https://www.mathworks.com/help/matlab/ref/sprintf.html

中进一步分析

你可以先试试这个。如果这无法达到您的目标,我会感谢一些投入。感谢。

答案 1 :(得分:0)

printmat功能现在非常 obsolete。我认为table objects是其预期的后继者(以及诸如array2table之类的函数,用于将矩阵转换为数据表)。表允许您添加行名和列名,并以不同方式格式化列。我不认为可以为每个号码添加$%,但可以 specify the units of each column

通常,您还可以使用format格式化显示精度。这样的事情可能就是你想要的:

format long