2015-06-30 40 views
1

我試圖創建以下字符串:Matlab的:如何打印 「'」 字符

javaaddpath ('C:\MatlabUserLib\ParforProgMonv2') 

但是,我只能做到以下

command = sprintf('%s ', varargin{1}, '(', varargin{2}, ')'); 

這給了我:

javaaddpath (C:\MatlabUserLib\ParforProgMonv2) 

UPDATE: 巴sed的上Dan's suggestion,我用了以下內容:

command = sprintf('%s', varargin{1}, '(', '''', varargin{2}, '''', ')') 
+1

如指出,你並不真的需要添加你用你的問題是什麼,它更簡單,只是接受的答案;) – Dan

+0

在案件你必須在多個PL中處理這個符號王牌更容易擁有一個變量來包含它'o ='''';'並在需要時使用'o'。 –

回答

3

使用兩個單引號。請參閱文檔formatting strings,順便說一句,這個概念被稱爲escape character(以幫助你谷歌在未來這樣的事情)。

command = sprintf('%s ', varargin{1}, '(''', varargin{2}, ''')') 

雖然我覺得你可能更喜歡

command = sprintf('%s (''%s'')', varargin{1}, varargin{2}) 

,或者如果你沒有其他varargin秒(我的猜測是不太可能,但無論如何)

command = sprintf('%s (''%s'')', varargin{:}) 
+0

額外的空間正在創建:javaaddpath('C:\ MatlabUserLib \ ParforProgMonv2')。我怎麼能殺死這些額外的空間? –

+0

@DushyantKumar使用我的第二個建議(這是一個更好的方法來做到這一點)。你的額外空間來自於你在'%s'之後放置了一個空格字符,即'%s'',這將在後面的參數中的每個字符串之後放置一個空格。 – Dan

+1

感謝詞彙課我不知道這些被稱爲轉義字符 –

1

有一對夫婦的解決方法。首先,你可以宣佈你的路徑作爲一個字符串變量,然後將字符串傳遞給你的命令,例如,

path = 'my/path' 
javaaddpath (path) 

或者您可以使用special characters插入的東西就像一個單引號或換行字符,所以對於一個單引號,

編輯:錯誤的顯示命令丹下面

myString = '" Hi there! "' 
disp(myString) 
+0

我不認爲你想在'Matlab中打印'...'''''是正確的,雖然 – Dan

+1

啊當然,我責怪最近被轉換爲Python:D – DrBwts