谁能给我一些有关fprintf('单引号('')?\ n')在MATLAB中的解释吗?

时间:2018-09-28 09:19:50

标签: matlab io printf

>> fprintf('How about single quote('')?\n')
How about single quote(')?

输出与以下内容相同:

>> fprintf("How about single quote(\')?\n")
How about single quote(')?

更一般的理解 (转义字符由反斜杠'\'和一个字符(例如'n')组成)

那么,是否可以通过单引号(')来更改反斜杠('\')以表示MATLAB中的转义符?

1 个答案:

答案 0 :(得分:5)

Matlab有char vectors and strings。它们是不同的数据类型。字符向量用单引号(')括起来:

disp('This is a char vector')

而字符串使用双倍("):

disp("Hey, I am a string")

要在char向量中引入单引号,或在字符串中引入双引号,请复制

disp('Hey, what''s up?')
disp("Say ""Hi""")

在char向量中引入双引号或在字符串中引入单引号没有问题:

disp('She said "yes"')
disp("What's the matter?")

当字符向量或字符串用作fprintf的参数时,所有这些通常都适用。此外,Matlab的fprintfsprintf显然是 1 \'理解为'和{{1}的同义词}与\"的同义词;但是复制规则仍然适用。 2 因此它们是等效的:

"

这些是

fprintf('I don''t like strings\n')
fprintf('I don\''t like strings\n')

fprintf("""Inconceivable!"", he retorted\n") fprintf("\""Inconceivable!\"", he retorted\n") fprintf之外,sprintf\'没有那些特殊的含义。试试

\"

1 我没有找到此文档。
2 原因可能是模仿C's fprintf behaviour;但请注意,此处无需重复。