如何根据表格中的数据修改合适的单元格颜色(在Matlab中)?

时间:2011-09-13 23:42:01

标签: matlab user-interface matlab-uitable

我有一个matlab函数,可以返回合适的结果。

表中有2列和多行:第一列是“值”,第二列是各种各样的“安全阈值/置信区间”。

我想格式化输出,以便某些单元格被涂成红色: 第1栏中“值”超过第2栏中相应“安全阈值”的那些。

有没有办法只使用Matlab来做到这一点?

PS: 我知道以下页面:

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

但是对我来说似乎有很多修修补补,我希望自从那篇文章发布以来,也许Matlab已经赶上并且内置了这个功能?

1 个答案:

答案 0 :(得分:8)

如果您阅读了carefully讨论,您会发现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