Matlab имеет символьных векторов и строк .Это разные типы данных.Векторы символов заключаются в одинарные кавычки ('
):
disp('This is a char vector')
, тогда как в строках используются двойные кавычки ("
):
disp("Hey, I am a string")
Чтобы ввести одинарную кавычку в символvector, или двойная кавычка в строке, вы дублируете it:
disp('Hey, what''s up?')
disp("Say ""Hi""")
Введение двойной кавычки в символе вектора или одиночной кавычки в строке не представляет проблемы:
disp('She said "yes"')
disp("What's the matter?")
Все это обычно применяется, когда векторы символов или строки используются в качестве аргументов fprintf
.Кроме того, Matlab fprintf
и sprintf
, по-видимому, 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
\'
и \"
не имеют этих особых значений.Попробуйте
disp('\'' \"')
disp("\' \""")
1 Я не смог найти это документально.
2 Возможно, причина в том, чтобы имитировать C fprintf
поведение ;но учтите, что дублирование там не требуется.