错误写入文本文件

2视图(30天)
东
2011年9月26日
大家好!
我想模型结果输出到一个文本文件在运行模拟。万博1manbetx但文本文件的值是不同的与真实值与工作区中的值(比较)。我也使用烈性黑啤酒结果导出到一个垫子文件和比较结果的文本文件:垫文件中的值在工作区中值是一样的。我也知道这是真值。但文本文件中的值是不同的。例如工作区和mat文件中的值是0.9913,但是在文本文件是1.012。但事实上,真正的值不超过1。仿真时,文本文件中的值总是大于实际值。请帮助我。
4评论
东
2011年9月26日
如果值是正确的,我可以连接与其他语言Matlab (VB, c++)通过文本文件做一些实验

登录置评。

答案(3)

Fangjun江
Fangjun江 2011年9月26日
我只是确认与fopen(文件,“w”),文件的内容将书写过度。所以你只会得到最后一个值,不是目的。
可能会有一种不参选fopen()和fclose()在每一个时间步。但最简单的方法是编写附加的文本文件模式。使用fopen(文件,“在”)。
16条评论
Fangjun江
Fangjun江 2011年9月30日
@Tung,任何更新吗?另一个建议是将样品时间是0.01,而不是继承。我认为这将有助于弄清真相这个问题。

登录置评。


1月
1月 2011年9月27日
代码不插入空格后写一个号码:“sys =流(fid, % f, u)”。但你的数据包含空间:“0.000000 0.000000 0.001569…”。你没有把原始代码或运行另一个程序。
请在流中设置一个断点行发现,发生了什么。
1评论
东
2011年9月28日
谢谢你的观察。对于接收以上值,代码
函数sys = mdlOutputs (t, x, u)
fid = fopen (value.txt, ' + ');
sys =流(fid, % f \ t, u);
文件关闭(fid);
函数sys = mdlOutputs (t, x, u)
sys =流(% f \ t, u);

登录置评。


1月
1月 2011年9月26日
如何创建文本文件?这似乎是显而易见的,有一个错误在这个例程。
[编辑]读完你的评论显示代码:
流工作正常。所以你不是要你但是x,或者你写的文件 当前的 文件夹中,但这不是你期待的文件夹。然后文件与“错误”的值是由早期版本写的。
更好的路径添加到输出文件并检查FOPEN的成功在每一个案例:
fid = fopen (fullfile (tempdir“value.txt”),' w ');
如果fid < 0,错误(“不能打开的文件”);结束
2的评论
东
2011年9月27日
样品功能之后,我认为s函数的输出是u。我把代码和模型文件在同一文件夹。万博1manbetx我也删除了“价值。txt”,并再次运行仿真。结果也是一样的。
所以,我不知道在我的程序是错误的

登录置评。

类别

找到更多的在准备模型输入和输出帮助中心文件交换

社区寻宝

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

开始狩猎!