arrays - 在 Matlab 中显示字体颜色

标签 arrays matlab matrix fonts matlab-uitable

我正在尝试创建一个低于阈值的数字数组(转换为字符串),对于我当前的测试,我使用的是 0.5。我需要我的表中高于或低于我的阈值的每个值的字体都被涂成红色,在我当前的代码中我只使用 2 列,但我将使用超过 10 列。这是我现在的代码它只以红色显示 0.5 以上的数字值,但不显示 0.5 以下的数字(它们应该是黑色的)。 对于变量的错误命名,我深表歉意,我只是在测试实现这个。将不胜感激。

TTT = rand(30,2);
for u = 1:2

PPP = TTT(1:30, u:u);

   RRR = ( PPP(:) > .5);

   AAA = reshape(strtrim(cellstr(num2str(TTT(:)))), size(TTT));

   QQQQ(RRR, u) = strcat(...
   '<html><span style="color: #FF0000; font-weight: bold;">', ...
    AAA(RRR, u), ...
   '</span></html>');


end
%# 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',QQQQ) 

最佳答案

您没有在 QQQQ 中填写所有值,只有那些将显示为红色的值。其余的(应该是黑色的)保留为空单元格,因此不会显示。

要更正此问题,您需要将QQQQ 初始化为AAA,然后然后 修改相关单元格的颜色。所以,添加

AAA = reshape(strtrim(cellstr(num2str(TTT(:)))), size(TTT));
QQQQ = AAA;

for 循环之前,从循环中删除 AAA = reshape... 行。即:

TTT = rand(30,2);
AAA = reshape(strtrim(cellstr(num2str(TTT(:)))), size(TTT));
QQQQ = AAA;
for u = 1:2
   PPP = TTT(1:30, u:u);
   RRR = ( PPP(:) > .5);
   QQQQ(RRR, u) = strcat(...
      '<html><span style="color: #FF0000; font-weight: bold;">', ...
      AAA(RRR, u), ...
      '</span></html>');
end

%# 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',QQQQ) 

关于arrays - 在 Matlab 中显示字体颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20577391/

相关文章:

c++ - 如何将二维数组传递和返回给函数

matlab - 如何自定义图例元素的位置?

matlab - 在 Matlab 中查找距离矩阵中一组点的最接近匹配距离

java - 给定数字 N,如何调用递归调用 N 次?

Python 列表与数组——何时使用?

image - 图像转换滤镜

Excel按升序排序,不包括对角线元素

c++ - 使用 operator<< 并打印错误值的类的程序 c++

java - 从 Java 到 Groovy : how to handle "String myArray[]"

ios - Swift 3 构建数组(不知道如何描述)