Arrays Matlab中字体颜色的显示

Arrays Matlab中字体颜色的显示,arrays,matlab,matrix,fonts,matlab-uitable,Arrays,Matlab,Matrix,Fonts,Matlab Uitable,我正在尝试创建一个数字数组(转换为字符串),该数组将落在一个thresh hold下面,对于我当前的测试,我使用0.5。我需要的字体,我的表中的每一个值,落在我的阈值以上或以下是红色的,在我目前的代码中,我只使用2列,但我将使用超过10列。这是我现在的代码,它只显示0.5以上的数字值为红色,但不显示0.5以下的数字(它们应该为黑色)。 很抱歉变量的命名不好,我只是在测试如何实现它。非常感谢您的帮助 TTT = rand(30,2); for u = 1:2 PPP = TTT(1:30, u:

我正在尝试创建一个数字数组(转换为字符串),该数组将落在一个thresh hold下面,对于我当前的测试,我使用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) 
TTT=rand(30,2);
对于u=1:2
PPP=TTT(1:30,u:u);
RRR=(购买力平价(:)>.5);
AAA=重塑(strtrim(cellstr(num2str)(TTT(:)))),大小(TTT));
QQQ(RRR,u)=strcat(。。。
'', ...
AAA(RRR,u)。。。
'');
结束
%#创建表
f=数字;
h=uitable('Parent',f',Units','normalized','Position',[0.05 0.05 0.9 0.9]);
%#设置表格数据
集合(h,‘数据’,QQQ)

您没有填写
qqq
中的所有值,只填写红色的值。其余部分(应为黑色)保留为空单元格,因此不显示

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

AAA = reshape(strtrim(cellstr(num2str(TTT(:)))), size(TTT));
QQQQ = AAA;
就在
for
循环的前面,从循环中删除
AAA=reformate…
行。即:

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) 
TTT=rand(30,2);
AAA=重塑(strtrim(cellstr(num2str)(TTT(:)))),大小(TTT));
QQQ=AAA;
对于u=1:2
PPP=TTT(1:30,u:u);
RRR=(购买力平价(:)>.5);
QQQ(RRR,u)=strcat(。。。
'', ...
AAA(RRR,u)。。。
'');
结束
%#创建表
f=数字;
h=uitable('Parent',f',Units','normalized','Position',[0.05 0.05 0.9 0.9]);
%#设置表格数据
集合(h,‘数据’,QQQ)

如果您能发布一个完整的代码示例,我们可以复制并粘贴以试用,那将是最好的选择。在您的代码中,
TTT
未定义。TTT是由matlab生成的随机数组(30 x 2)。我可能在粘贴变量PPP时出错,但一切都正常。现在编辑代码。+1对于直接运行的代码,我一定错过了第一行。谢谢分配!!!这确实解决了我的前半部分问题,我还需要第1列中所有值的字体在大于0.50时也涂成红色。@Stephan抱歉。必须在
for
循环之前进行初始化。见更新的答案哇,谢谢你,路易斯它工作得很好。“我从来没有注意到这些错误,再次感谢你,我花了几个小时来解决这些问题。”斯蒂芬很高兴我能帮上忙。正如你可能知道的,你应该考虑投票和/或把答案标记为接受,如果它解决了你的问题:-这个QA教给我一些新的东西(处理表格数据中的HTML),我将处理Stephan无法支持的投票。