如何用单个fprintf()调用将两个MATLAB向量写入文件并添加/分隔符
单个fprintf()实现MATLAB向量带/分隔的输出
当然可以通过单个fprintf()调用来实现需求,下面分两种场景给出具体实现:
固定长度向量场景
如果已知a和b的元素个数固定(比如都是3个),可以直接构造包含分隔符的格式字符串:
a = [1 2 3]; b = [4 5 6]; fileID = fopen('output.txt', 'w'); fprintf(fileID, '%d %d %d / %d %d %d\n', a, b); fclose(fileID);
执行后文件内会写入:1 2 3 / 4 5 6
可变长度向量场景
如果向量长度不固定,可以动态生成格式字符串,适配任意长度的a和b:
a = [1 2 3]; b = [4 5 6]; fileID = fopen('output.txt', 'w'); % 生成对应a元素的格式片段,移除末尾多余空格 fmt_a = repmat('%d ', 1, length(a)); fmt_a = fmt_a(1:end-1); % 生成对应b元素的格式片段,移除末尾多余空格 fmt_b = repmat('%d ', 1, length(b)); fmt_b = fmt_b(1:end-1); % 拼接完整格式字符串 full_fmt = [fmt_a ' / ' fmt_b '\n']; % 单次调用fprintf完成输出 fprintf(fileID, full_fmt, a, b); fclose(fileID);
这种方式会根据a和b的实际长度自动调整格式,输出符合要求的带/分隔的内容。
内容的提问来源于stack exchange,提问作者SolidMechanicsFan
相关产品推荐
相关产品推荐

