我使用几个字符串形成一个特定的字符串strcat并将其显示在控制台中 此字符串包含的字符如:1,2,3,4,5,6,7,8,9,0,#,*,E和现在用的fprintf('%s')这个目的.
例如:
2E4137E65922#
是代码的可能结果.
无论如何,我可以写信E在我的输出中脱颖而出吗?喜欢把它弄成红色?
不幸的是,没有正式的方法可以做到这一点.但是,你可以使用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');
Run Code Online (Sandbox Code Playgroud)
但是,在Matlab 2014b中它没有给出好的结果.我发现当有一个字符要格式化时,它无法正常工作.
如果你用'EE'代替'E'作品....
EDIT2:我给Yari Altman留言.希望如果他能,他会解决这个问题.
您可以使用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)
Run Code Online (Sandbox Code Playgroud)
感谢@Dev -iL 提供此信息!
虽然从我的另一个答案来看,似乎cprinf()不适用于单个字符,但如果有人想要使用一种颜色,并且该颜色是橙色,那么可以使用用于warningin的这个技巧:cprintf
disp(['this is [' 8 'orange]' 8 ' text'])
Run Code Online (Sandbox Code Playgroud)
阅读更多信息:http ://undocumentedmatlab.com/blog/another-command-window-text-color-hack
因此,您的代码将如下所示:
s='2E4137E65922#';
C=strsplit(s,'E');
str=C{1};
for ii=2:size(C,2)
str=[str ['[' 8 'E]' 8 ]];
str=[str C{ii}];
end
disp(str);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
371 次 |
| 最近记录: |