Как изменить подходящий цвет ячейки в соответствии с данными в таблице (в Matlab)? - PullRequest
5 голосов
/ 14 сентября 2011

У меня есть функция Matlab, которая возвращает результаты в пригодном для использования.

В таблице 2 столбца и множество строк: первый столбец - это «значения», а второй столбец - это «порог безопасности / доверительный интервал».

Я бы хотел отформатировать вывод, чтобы некоторые ячейки были окрашены в красный цвет: те, для которых «значение» в столбце 1 превышает соответствующий «порог безопасности» в столбце 2.

Есть ли способ сделать это, используя только Matlab?

PS: Мне известна следующая страница:

http://www.mathworks.de/matlabcentral/newsreader/view_thread/150507

но мне кажется, что это много повозится, и я надеюсь, что с тех пор, как этот пост был написан, возможно, Matlab догнал и внедрил эту функциональность?

1 Ответ

8 голосов
/ 14 сентября 2011

Если вы внимательно прочитаете обсуждение , вы обнаружите, что UITABLE поддерживает контент HTML ...

Вот пример:

X = rand(100,2);

%# convert matrix of numbers to cell array of strings (right aligned)
XX = reshape(strtrim(cellstr(num2str(X(:)))), size(X));

%# find cells matching condition
idx = ( X(:,1) > X(:,2) );

%# use HTML to style these cells
XX(idx,1) = strcat(...
    '<html><span style="color: #FF0000; font-weight: bold;">', ...
    XX(idx,1), ...
    '</span></html>');

%# create table
f = figure;
h = uitable('Parent',f, 'Units','normalized', 'Position',[0.05 0.05 0.9 0.9]);

%# set table data
set(h, 'Data',XX)

screenshot

...