流是印刷奇怪的字符不是数字

26日视图(30天)
我想打印一个矢量的无符号整数到一个文本文件,每个数字之间的空间。但我收到的文件只是奇怪的符号。我必须做一些微不足道的错误,它不是第一次发生了,我不记得还有什么解决办法。这是发生在R2018b(但我记得它发生在旧版本)。下面的示例代码:
清晰的
data = uint32 (0 (1615));
数据(1:2:50)= 1;
输出= fopen (“output.txt”,“wt”);
流(输出,' % d '、数据);
文件关闭(输出);
输出我得到的是:‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‱‰‰‰‰‰‰‰‰‰‰……
我希望输出:1 0 1 0 1 0 1 0 1 0 1 0 1 0 1…
17日评论
里克
里克 2018年10月3日
这就是为什么我差点放弃,甚至告诉 utf - 8 windows - 1252 分开,这应该是相对容易的,但是是不平凡的。notepad++似乎做得更好比我可以用Matlab管理。
我使用的文件,我FEX提交作品,但我不知道不会过时,函数(或past-proof)。

登录置评。

接受的答案

Guillaume
Guillaume 2018年10月3日
编辑:Guillaume 2018年10月3日
问题是由于笔记本坏了编码检测算法。出于某种原因,它假设文件编码在UTF16,那里的字节序列[49 32](字符' 1 ',' '在ansi和UTF8)的确代表了性格 “‱” 。注意,只添加一个空间,“,在你的数字序列完全改变行为的记事本的检测算法。与空间开始,ANSI或UTF8正确解释文件。
正如斯蒂芬说不要使用记事本。它坏了(和非常有限的功能)。一个好的选择是开源notepad++。你也可以简单地使用matlab的编辑器。
编辑: 另一个选择是保存输出。txt UTF16,将被正确读取的记事本,特别是,如果您插入一个BOM。matlab可以读/写UTF16,然而,尽管它不是记录,所以可能会有一些优势的情况下它不适当的工作。此外,记事本可能是唯一的软件,往往假设UTF16,一切往往假设UTF8默认情况下,显示会看起来奇怪的在几乎所有其他文本编辑器(包括matlab的)。

更多的答案(0)

类别

找到更多的在文件操作帮助中心文件交换

标签

下载188bet金宝搏


释放

R2018a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!