>> fprintf('How about single quote('')?\n')
How about single quote(')?
Run Code Online (Sandbox Code Playgroud)
输出与:
>> fprintf("How about single quote(\')?\n")
How about single quote(')?
Run Code Online (Sandbox Code Playgroud)
这是更通用的理解(逃避字符由反斜杠'\'和字符(例如'n')组成)
那么,反斜杠('\')是否可以通过单引号(')来改变,以表示MATLAB中的转义字符?
Matlab有char矢量和字符串.它们是不同的数据类型.Char向量用单引号(')括起来:
disp('This is a char vector')
Run Code Online (Sandbox Code Playgroud)
而字符串使用double quoutes("):
disp("Hey, I am a string")
Run Code Online (Sandbox Code Playgroud)
要在char向量中引入单引号,或在字符串中引入双引号,请复制它:
disp('Hey, what''s up?')
disp("Say ""Hi""")
Run Code Online (Sandbox Code Playgroud)
在char向量中引入双引号,或在字符串中引入单引号,没有问题:
disp('She said "yes"')
disp("What's the matter?")
Run Code Online (Sandbox Code Playgroud)
当char向量或字符串用作参数时,所有这一切都适用fprintf.此外,Matlab fprintf和sprintf 显然是1理解\'为同义词',并且\"是其同义词"; 但复制规则仍然适用.2所以这些是等价的:
fprintf('I don''t like strings\n')
fprintf('I don\''t like strings\n')
Run Code Online (Sandbox Code Playgroud)
就像这些:
fprintf("""Inconceivable!"", he retorted\n")
fprintf("\""Inconceivable!\"", he retorted\n")
Run Code Online (Sandbox Code Playgroud)
在fprintf或之外sprintf,\'并\"没有那些特殊含义.尝试
disp('\'' \"')
disp("\' \""")
Run Code Online (Sandbox Code Playgroud)
1
我无法找到这个记录.
2
原因可能是模仿C的fprintf行为 ; 但请注意,那里不需要重复.