我正在使用多个strcat
形成一个特定的字符串并将其显示在控制台中。此字符串包含以下字符:1
,2
,3
,4
,5
,6
,7
,{ {1}},8
,9
,0
,#
,*
并为此目的使用E
。
例如:
2E4137E65922#
是代码的可能结果。
无论如何,我可以让fprintf('%s')
字母在我的输出中脱颖而出吗?就像把它弄成红色一样?
答案 0 :(得分:6)
不幸的是,没有正式的方法可以做到这一点。但是,您可以使用Yari Altman的cprintf()
。它滥用Matlab的无证功能来完全按照你的意愿行事。
您可以在他运行的着名Undocumented Matlab博客中阅读更多内容。
FEX中的示例图像如下所示:
编辑:从理论上讲,如果cprintf
按预期工作,则以下情况应该有效:
C=strsplit(s,'E');
cprintf('black',C{1});
for ii=2:size(C,2)
cprintf('err','E');
cprintf('black',C{ii});
end
cprintf('black','\n');
然而,在Matlab 2014b中,它并没有给出好的结果。我发现当有一个要格式化的字符时,它无法正常工作。
如果用“EE”代替“E”作品......
EDIT2:我向Yari Altman发表评论。希望如果可以,他会解决问题。
答案 1 :(得分:5)
您可以使用HTML标记<strong>
,</strong>
以粗体键入特定字母:
str = '2E4137E65922#'; %// input string
letter = 'E'; %// letter that should be made bold
strBold = regexprep(str, letter, ['<strong>' letter '</strong>']); %// output string
disp(str)
disp(strBold)
答案 2 :(得分:2)
感谢@Dev -iL获取此信息!
虽然我的其他答案中的cprinf()
似乎不适用于单个字符,但如果有一种颜色需要使用,并且该颜色为橙色,则此技巧用于{{1}可以使用warning
中的}:
cprintf
阅读详情:http://undocumentedmatlab.com/blog/another-command-window-text-color-hack
因此,您的代码看起来像:
disp(['this is [' 8 'orange]' 8 ' text'])