fid,fopen,fprintf-在for循环中覆盖内容的问题

问题描述

在Matlab中,我试图将向量'B'的内容写入'Bmatrix_b1000.txt'文件中,但是我似乎无法将整个输出写入txt文件中。整个输出应具有55行和6列的值。 “ B”矢量尺寸基于“ bvec”(55x3)和“ bval”(55x1)文件。到目前为止,我的“ Bmatrix_b1000.txt”文件中仅获得9行和6列的值。关于我可能做错了什么的任何建议? 谢谢!

directory='/path/'; %setting directory
cd(directory) 
all_files = dir('*_b1000.nii'); 
all_files ={all_files.name}'

fid = fopen('Bmatrix_b1000.txt','a');  %open txt file

for n=1:size(all_files,1)
bval=dlmread('/pathtobvalfile/.bval'); %read bval file
bvec=dlmread('/pathtobvecfile/.bvec'); %read bvec file
B=bval(:,ones(1,6)).*[bvec(:,1).^2 2*bvec(:,1).*bvec(:,2) 2*bvec(:,3) bvec(:,2).^2 2*bvec(:,2).*bvec(:,3).^2]; bvec(:,2).^2*bvec(:,3).^2];        %calculate B vector
    for i=1:size(B,1)  
    fprintf(fid,'%12.8f\t%12.8f\t%12.8f\t%12.8f\t%12.8f\t%12.8f\n',B(i,:)); %write B vector content into txt file
    end
    fclose(fid); %close txt file
end

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)