如果变量具有3个以上的元素,则在matlab表中显示值

时间:2015-05-10 12:38:16

标签: matlab-table

我的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的值?

希望能得到一些帮助吗?

非常感谢!

3 个答案:

答案 0 :(得分:1)

您可以使用变量查看器。

示例:

A = table(magic(5))

A = 

    Var1    
____________

[1x5 double]
[1x5 double]
[1x5 double]
[1x5 double]
[1x5 double]

在工作区中,您现在可以双击A

screenshot1

这将打开以下查看器,向您显示该表的内容:

screenshot2

答案 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'

如果有人知道如何在没有''引号 - 请告诉我们!