2017-04-10 464 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

相关问题