MATLAB: Table dispaly with char array

table dispaly

Got the below code, not sure why the table display of the char array is not right
Tval = table(name, x_t, tvals, 'VariableNames',{'Fund','Allocation','Dollar_Value'})
Tval =
    Fund    Allocation    Dollar_Value
    ____    __________    ____________
    BHP      0.22894      [1x11 char]
    NAB      0.19151      [1x11 char]
    CSR      0.38988      [1x11 char]
    AGL      0.13727      [1x11 char]
    NCP     0.052397      [1x11 char]
Tval.Dollar_Value
ans = $22894412.3
$19150910.7
$38988264.5
$13726664.3
$5239748.2
How to get the strings to display? Thanks!

Best Answer

You're using a char array, almost certainly not what you want for a variety of reasons. Mostly, char matrices require awkward padding with spaces and don't have many of the text processing functions that cell arrays of char vectors have. (I won't even get into why you're using text for a numeric quantity, presumably you have good reasons.) If you use a cell array of char vectors, table will display the full text:
>> table([1;2;3],{'abcdefgh';'abcdefghabcdefgh';'abcdefghabcdefghabcdefgh'})
ans =
Var1 Var2
____ __________________________
1 'abcdefgh'
2 'abcdefghabcdefgh'
3 'abcdefghabcdefghabcdefgh'
In the most recent version of MATLAB, R2016b, you're probably even better off using the new string type. Hope this helps.