2013-12-13 3 views
4

Я пытаюсь создать массив чисел (преобразованный в строку), которые ниже уровня hold hold, для моего текущего тестирования я использую 0.5. Мне нужен шрифт каждого значения моей таблицы, который падает выше или ниже моего значения, чтобы он был окрашен в красный цвет, в моем текущем коде я использую только 2 столбца, но я буду использовать больше 10. Это мой код прямо сейчас и он отображает только значения чисел выше 0,5 в цвете красного цвета, но не отображает цифры ниже 0,5 (они должны быть черными). Прошу прощения за неправильное присвоение переменных, я просто тестирую это. Помощь будет с благодарностью.Отображение цветов шрифта в Matlab

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) 
+0

Было бы лучше, если бы вы смогли отправить полный пример кода, который мы можем скопировать и вставить, чтобы попробовать. В вашем коде 'TTT' не определен. –

+1

TTT - случайный массив, генерируемый матрицей, (30 x 2). Возможно, я сделал ошибку, вставив переменную PPP, но все работает. Теперь отредактировал код. – barracuda

+0

+1 для прямого запуска кода –

ответ

3

Вы не заполнять все значения в 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) 
+0

Спасибо allot !!! который действительно решил первую половину моих проблем, мне также нужны шрифты всех значений в столбце 1, чтобы они также были окрашены в красный цвет, если они выше 0.50. – barracuda

+0

@Stephan Извините. Инициализация должна выполняться перед циклом 'for'. См. Обновленный ответ –

+0

Вау, спасибо, что Луис работал отлично. Я никогда не замечаю этих ошибок, еще раз спасибо, я потратил много времени на это. – barracuda