2017-04-10 99 views
0

我想以一種被解釋爲單元格的方式在(m-)文件中寫入單元格數組:單元格元素引用'元素'並用逗號和空格分隔。要歸檔這個formatSpec應該處理'它不能直接:formatSpec =''%s','不工作(與strrep(S,'','''相同))。有沒有辦法在正則表達式中標記'like'?這其中,「取代有§一個代碼示例:Matlab:formatSpec如何與''一起工作?

Pop_plus = {'(-1./z)', '(1./(z.^-2))', '((z-1)./(z+1))', '(((z+1)./z)./2)', '(z+sqrt((z.^2)-1))', '(1./(4.*(z.^2)-1))'}; 

Pop_plus_out_path_m = ...\Pop_plus.m; 
fileID = fopen(Pop_plus_out_path_m, 'wt'); 
formatSpec = '%s'; 
L1 = {'F = {'}; 
fprintf(fileID,formatSpec,L1{1}); 
formatSpec = '§%s§, '; 
for i = 1:numel(Pop_plus)-1 
     fprintf(fileID,formatSpec,Pop_plus{i});        
end 
formatSpec = '§%s§'; 
fprintf(fileID,formatSpec,Pop_plus{numel(Pop_plus)}); 
L2 = {'};'}; 
formatSpec = '%s'; 
fprintf(fileID,formatSpec,L2{1}); 
fclose(fileID); 


result: F = {§(-1./z)§, §(1./(z.^-2))§, §((z-1)./(z+1))§, §(((z+1)./z)./2)§, §(z+sqrt((z.^2)-1))§, §(1./(4.*(z.^2)-1))§}; 

回答

0

使用它作爲一個格式說明時,這不只是一個問題,這就是當你正試圖定義一個字符數組的問題。嘗試在字符數組中使用它時,您需要跳過'與另一個'

'''string' 
% 'string 

爲了您的具體的例子,你可以創建格式規範

formatSpec = '''%s'''; 
+0

謝謝!完美的作品! –

+0

@GünterBachelier如果這項工作適合您,請考慮將其標記爲可接受的解決方案 – Suever