在MATLAB中写入文本文件时的格式设置
我有一个如下所示的数组:在MATLAB中写入文本文件时的格式设置,matlab,file-io,Matlab,File Io,我有一个如下所示的数组: cloud = 7.5059 51.4406 7.5057 51.4445 7.5048 51.4484 7.5034 51.4522 7.5014 51.4558 7.4989 51.4593 7.4958 51.4627 7.4923 51.4658 7.4884 51.4686 . . 我只想将这个数组以相同的格式写入一个文本文件。我尝试了fprintf和dlmwrite但我能够生成完全相同的格式。我知道这很容易,但
cloud =
7.5059 51.4406
7.5057 51.4445
7.5048 51.4484
7.5034 51.4522
7.5014 51.4558
7.4989 51.4593
7.4958 51.4627
7.4923 51.4658
7.4884 51.4686
.
.
我只想将这个数组以相同的格式写入一个文本文件。我尝试了fprintf
和dlmwrite
但我能够生成完全相同的格式。我知道这很容易,但我只是在尝试了很多之后才提出这个问题。你调查过吗
您是否考虑过将其转换为ascii文件
save( 'myFile.txt', 'cloud', '-ascii', '-tabs' );
编辑:
\r\n
,对于Mac和Linux,有时使用\r
就足够了,有时使用\n
(我不是100%确定)。因此,您可能需要对它进行一点试验,以找出什么最适合您的机器。(感谢@Rody在这里纠正我的错误)%.5g
中的数字决定打印数字的精度。同样,你可以玩它,直到你对结果感到满意fid = fopen('cloud.txt', 'w');
fprintf(fid, '%.4f\t%.4f\r\n', cloud.');
fclose(fid)
fid = fopen('cloud.txt', 'w');
fprintf(fid, '%.4f\t%.4f\n', cloud.');
fclose(fid)
以下是更具可读性的方式:
dlmwrite('cloud.txt', cloud, 'delimiter', '\t', 'precision', 4, 'newline', 'pc')
dlmwrite('cloud.txt', cloud, 'delimiter', '\t', 'precision', 4);
LINUX
这里有一个方法:
fid = fopen('cloud.txt', 'w');
fprintf(fid, '%.4f\t%.4f\r\n', cloud.');
fclose(fid)
fid = fopen('cloud.txt', 'w');
fprintf(fid, '%.4f\t%.4f\n', cloud.');
fclose(fid)
以下是更具可读性的方式:
dlmwrite('cloud.txt', cloud, 'delimiter', '\t', 'precision', 4, 'newline', 'pc')
dlmwrite('cloud.txt', cloud, 'delimiter', '\t', 'precision', 4);
使用
dlmwrite
,您的代码是什么,我想它应该可以工作了。比如'7.4081,51.127.4078,51.1257.4068,51.1297.4053,51.1337.4032,51.137'第一个cloud=8.0775 50.9617 8.0773 50.9646 8.0766 50.9675
'第二个打印第一个第三个下面的第二列-使用dlmwrite给出错误错误(第118行)
不是有效的属性或分隔符。分隔符必须是单个字符。所以我尝试使用单个空格,但它再次水平打印行。@Vikram:让我猜一下:Windows用户?:)等一下,我会做必要的调整。它是这样的-8.833 51.098.832 51.098.832 51.098.831…不知为什么它也截断了我的值。相反*nix使用\n
,而Windows使用\r\n