2016-02-05 2 views
0

У меня есть структура. Я хочу отображать содержимое этой структуры в виде таблицы. Поэтому я использую следующее преобразование:Показать структуру Matlab как таблицу

aTable = struct2table(aStruct); 
disp(aTable); 

который возвращает

aStruct = 

    LocalName: {'example.cdf'} 
     Size: '1 KB' 
ModifiedTime: '10-May-2010 21:35:00' 

aTable = 

    LocalName  Size ModifiedTime 
_____________ ____ ____________ 
'example.cdf' 1 KB [1x20 char] 

Значение modifiedTime не является правильным. Я надеюсь показать его как значение, а не как массив. Можете ли вы рассказать мне, как я могу это сделать?

+2

Это совершенно правильно. Строка представляет собой массив символов. Изменить: в противном случае вы должны использовать ячейку, как и для 'LocalName'. –

ответ

2

Если строка длиннее 10 символов, она отображает ее размер, а не сама строка. Cellstrings отображает строку до 143 символов, а затем обрезается с .... Этот эффект наследуется от внутреннего вызова до evalc(cellstr).

struct2table(struct('Char10', '1234567890', 'Char11','11234567890','Cellstring11',{{repmat('1',1,144)}})) 
ans = 
     Char10  Char11                   Cellstring11                 
    __________ ___________ ________________________________________________________________________________________________________________________________________________ 
    1234567890 [1x11 char] '111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111…' 

Чтобы решить проблему, когда преобразуется в таблицу:

aTable.ModifiedTime = cellstr(aTable.ModifiedTime); 
Смежные вопросы