2017-04-10 3 views
0

セル配列は、セルとして解釈されるように(m-)ファイルに書きたいと思います。セル要素は 'element'で、カンマと空白で区切られています。このformatSpecをアーカイブするには、 '直接アクセスできない':formatSpec = ''%s '、' is not working(strrep(S、 '§'、 '' ')と同じです)。 \を正規表現で\のようにマークする方法はありますか?ここでは「§で置換されているコード例:書式指定子として使用する場合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

関連する問題