我的Matlab中的表输出有问题。我确定这是一个小问题,但谷歌对我没有任何答案,Matlab也没有帮助。
一旦变量的矢量大小大于3 ,输出就不会显示实际值。使用Matlab帮助示例,会发生以下情况:
变量BloodPressue = 3中的元素,表T的输出产生: T =
Age Height Weight **BloodPressure**
___ ______ ______ _________________
Smith 38 71 176 124 93 1
Johnson 43 69 163 109 77 1
Williams 38 64 131 125 83 1
Jones 40 67 133 117 75 1
Brown 49 64 119 122 80 1
变量BloodPressue中的元素= 4(或更大),表T的输出产生: T =
Age Height Weight **BloodPressure**
___ ______ ______ _____________
Smith 38 71 176 [1x4 double]
Johnson 43 69 163 [1x4 double]
Williams 38 64 131 [1x4 double]
Jones 40 67 133 [1x4 double]
Brown 49 64 119 [1x4 double]
如何在Matlab工作区中查看表内BloodPressure的值?
希望能得到一些帮助吗?
非常感谢!
答案 0 :(得分:1)
您可以使用变量查看器。
示例:
A = table(magic(5))
A =
Var1
____________
[1x5 double]
[1x5 double]
[1x5 double]
[1x5 double]
[1x5 double]
在工作区中,您现在可以双击A
:
这将打开以下查看器,向您显示该表的内容:
答案 1 :(得分:0)
如果您的问题仅仅是在使用数据时查看数据,上述答案将对您有所帮助。如果您想要操作实际输出,即打印时表格的外观等,请查看此链接:
http://www.mathworks.com/help/matlab/ref/uitable-properties.html
因此,您可以尝试使列标题更宽或者通常调整列的宽度以匹配您的数据。
答案 2 :(得分:0)
在我的情况下,当我发现黑客时,我解决了我的问题:
给定数组:
num2str(Comp_Matrix(3,:)','%12.10f')
ans =
0.1297092395
0.1507424182
0.1586286637
0.1587259832
0.2880978647
0.4785836471
0.4786843575
0.8680238040
使用我得到的表:
table(num2str(Comp_Matrix(3,:)','%12.10f'))
ans =
Var1
___________
[1x12 char]
[1x12 char]
[1x12 char]
[1x12 char]
[1x12 char]
[1x12 char]
[1x12 char]
[1x12 char]
嗯,你知道这是一个问题。当然我可以调用table(Comp_Matrix(3,:)')
- 它会显示实际数字,但我需要格式化输出!
所以我尝试了很多东西,当我使用cellstr
时,魔法发生了:
table(cellstr(num2str(Comp_Matrix(3,:)','%12.10f')))
ans =
Var1
______________
'0.1297092395'
'0.1507424182'
'0.1586286637'
'0.1587259832'
'0.2880978647'
'0.4785836471'
'0.4786843575'
'0.8680238040'
它仍然不漂亮,但它至少是可读的。 您也可以通过这种方式将列分配给表:
TheTable = table();
TheTable.Hack = cellstr(num2str([1 2 3 5; 4 5 6 5],'%1.2f '))
Hack
_____________________
'1.00 2.00 3.00 5.00'
'4.00 5.00 6.00 5.00'
如果有人知道如何在没有''引号 - 请告诉我们!