Как сохранить uitable () в PDF, JPG и т. Д. - PullRequest
1 голос
/ 01 апреля 2020

Как я могу сохранить свои uitable() в PDF, JPG и т. Д. c.?

Используя Matlab R2018a, никаких модных дополнений. Ищите решения с использованием таблиц, а не массивов, из-за размера / сложности реальных данных.

    % construct simple table as example %
    t = array2table(zeros(4,1));
    t.Properties.VariableNames{'Var1'} = 'id';
    t.id(:) = 1;
    t.fieldA = {'a'; 'b'; 'c'; 'd'};
    t.GroupCount = [22; 1; 19; 0];

    f = uifigure;
    uit = uitable(f, 'Data', t);
    % what command to save to PDF? or JPG, PNG, whatever

Обратите внимание, что f = figure не работает, иначе было бы легко сохранить как PDF (я думаю, у него проблемы с прохождением стола t, я не уверен):

f = figure; 
uit = uitable(f, 'Data', t);

Error using uitable
Functionality not supported with figures created with the figure function. For more information, see Graphics Support in App Designer.

1 Ответ

1 голос
/ 01 апреля 2020

Вы можете создать его как figure вместо uifigure, чтобы сохранить его. Но вы не можете передать ему стол. Вам нужен простой массив или массив ячеек для этого. Поскольку у вас смешанный тип данных, то для массива ячеек это путь к go. Используйте table2cell, чтобы преобразовать вашу таблицу в массив ячеек.

f = figure;
uit = uitable(f, 'Data', table2cell(t));
uit.ColumnName={t.Properties.VariableNames{:}}; %renaming columns to that of table
uit.RowName=[]; %removing default row numbering as in your uitable

Теперь вы готовы к go с экономией Ваша фигура в любом из ваших желаемых форматов. Например:

saveas(f, 'q60974307.png');

Результат:

...