给定
a=[1 2 3]; b=[4 5 6]; Output in file should look like: 1 2 3 / 4 5 6
有没有办法在一次fprintf()调用中实现这一点?我有一个解,其中a和b之间没有反斜杠
a
b
fprintf(fileID, '%d %d ', a, b); output: 1 2 3 4 5 6 (no backslash in between)
piztneat1#
如果你想动态地构造你的格式字符串,你可以只调用一次fprintf。
fileID=1; a=[1,2,3]; b=[4,5,6,7]; c=[8,9]; fprintf(fileID,strjoin(cellfun(@(c)sprintf('%d ',c),{a,b,c},'UniformOutput',false),'/ '));
它并不漂亮,可能只有当你在一个循环中有很多对fprintf的调用,并且需要避免开销时,它才值得麻烦,但是从技术上讲,它达到了你所要求的。
1条答案
按热度按时间piztneat1#
如果你想动态地构造你的格式字符串,你可以只调用一次fprintf。
它并不漂亮,可能只有当你在一个循环中有很多对fprintf的调用,并且需要避免开销时,它才值得麻烦,但是从技术上讲,它达到了你所要求的。