保存为txt文件为什么总是只有一列,原数组是两列
本帖最后由 liuyang5299 于 2012-8-27 21:33 编辑我用的是这个命令
原数组是8200*2,
for i=1:2:144 Tmp=C(:,i:i+1);
str= ['f1 - 副本 (' num2str((i+1)/2) ').txt'];
fid=fopen(str,'w');
fprintf(fid,'\%6.4f\n ',Tmp);
fclose(fid);
end
我怀疑是fprintf用法的问题,请问正确的是怎么样的?
你这个C是8200*2还是2*8200?
如果是8200*2的话,Tmp = C(:,i:i+1)这里会越界吧>> C = zeros(8200,2);
>> C(:,3:4)
Index exceeds matrix dimensions.下面我假设你这个C是2*8200,你应该把:fprintf(fid,'\%6.4f\n ',Tmp);改成:fprintf(fid,'%6.4f,%6.4f\n ',Tmp); ithinksoim 发表于 2012-8-28 07:51 static/image/common/back.gif
你这个C是8200*2还是2*8200?
如果是8200*2的话,Tmp = C(:,i:i+1)这里会越界吧下面我假设你这个C是2*8200 ...
那么C是8200*2呢 本帖最后由 ithinksoim 于 2012-8-28 10:52 编辑
liuyang5299 发表于 2012-8-28 10:30 static/image/common/back.gif
那么C是8200*2呢
那就还得把Tmp=C(:,i:i+1);改成Tmp=C(i:i+1,:); ithinksoim 发表于 2012-8-28 10:51 static/image/common/back.gif
那就还得把Tmp=C(:,i:i+1);改成
假如 我想保存为txt为两列,原数组为8200*4.保存为两个txt文件,每一个是8200*2
for i=1:2
Tmp=C(:,i:i+1);
str= ['f1 - 副本 (' num2str(i) ').txt'];
fid=fopen(str,'w');
fprintf(fid,'\%6.4f\n ',Tmp);
fclose(fid);
end
不对吗? liuyang5299 发表于 2012-8-28 16:58 static/image/common/back.gif
假如 我想保存为txt为两列,原数组为8200*4.保存为两个txt文件,每一个是8200*2
for i=1:2
不对,你要注意,多少列不取决于你这个Tmp里有多少列,而是取决于fprintf(fid,'%6.4f\n ',Tmp)的格式化字符串%6.4f\n里面有多少个元素。所以你应该写成:fprintf(fid,'%6.4f,%6.4f\n ',Tmp) lovebaby 发表于 2012-8-28 19:15 static/image/common/back.gif
不对,你要注意,多少列不取决于你这个Tmp里有多少列,而是取决于的格式化字符串%6.4f\n里面有多少个元素 ...
比如说temp是
1 23
4 56
fprintf(fid,'%6.4f,%6.4f\n ',Tmp)
输出的原则是什么
我之前试了一下
比如我的数组为8200*214,保存为72个txt文件,每一个文件为8200*3,其中文件第2列均为逗号,对应数值代码为44,如何循环保存为逗号,我的程序为
C=zeros(8200,216);
for i=1:3:214
Tmp=C(i:i+2,:);
str= ['f1 - 副本 (' num2str((i-1)/3+1) ').dbs'];
fid=fopen(str,'w');
fprintf(fid,'%f %s %f\n ',Tmp);
fclose(fid);
end
发现有些文件的数据很混乱
页:
[1]