在编写值向量和换行符时,避免多次调用fprintf

时间:2015-12-04 15:24:49

标签: string matlab printf

我使用fprintf将矢量值输出到文本文件。是否可以在打印的每个矢量的末尾添加换行符,而无需两次调用fprintf

生成所需输出1 2 3 4的示例,但下面有两次调用fprintf

A = [1 2 3 4];
fprintf('%d ', A)
fprintf('\n')

例如,如果您尝试使用fprintf('%d \n', A),则会在每个打印的数字后产生不希望的添加换行符的效果:

>> fprintf('%d \n', A)
1 
2 
3 
4 

我问的是一般的好奇心。对性能的影响当然可能很小。

2 个答案:

答案 0 :(得分:4)

不是一个优雅的解决方案,但是......

fprintf([repmat('%d ',1,numel(A)) '\n'], A)

或者,正如@nikkola所说:

fprintf([repmat('%d ',1,numel(A)-1) '%d\n'], A)

删除换行符之前的尾随空格。

答案 1 :(得分:2)

使用sprintf的另一个不优雅的解决方案:

A = [1 2 3 4];
fprintf('%s\n',sprintf('%d ', A))