在文件中写入两个matlab向量,并在向量之间插入反斜杠

k2fxgqgv  于 2023-02-05  发布在  Matlab
关注(0)|答案(1)|浏览(179)

给定

a=[1 2 3];
b=[4 5 6];
Output in file should look like:
1 2 3 / 4 5 6

有没有办法在一次fprintf()调用中实现这一点?
我有一个解,其中ab之间没有反斜杠

fprintf(fileID, '%d %d ', a, b);
output:
1 2 3 4 5 6 (no backslash in between)
piztneat

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的调用,并且需要避免开销时,它才值得麻烦,但是从技术上讲,它达到了你所要求的。

相关问题