2

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

希望得到一些帮助?

非常感谢!

4

3 回答 3

1

您可以使用变量查看器。

例子:

A = table(magic(5))

A = 

    Var1    
____________

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

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

截图1

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

截图2

于 2015-05-10T12:47:28.943 回答
0

如果您的问题只是在使用数据时查看数据,那么上述答案将对您有所帮助。如果您想操作实际输出,即打印时表格的外观等,请查看此链接:

http://www.mathworks.com/help/matlab/ref/uitable-properties.html

因此,您可以尝试使列标题更宽或调整列的宽度以匹配您的数据。

于 2015-05-10T12:54:56.560 回答
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'

如果有人知道一种方法来显示没有''引号的长数字 - 请也告诉我们!

于 2017-01-31T00:47:17.450 回答