fprintf 问题先写后读

fprintf issues in writing and then reading

我正在尝试在 Matlab 中导出包含 Anys 网格 (*.node) 节点坐标的二维矩阵。在这方面,我只是在 Matlab 中使用 fopen 和 fprintf 命令。例如:

========================================

fid = fopen('c:\new_nodes.node', 'wt'); fprintf(fid,'%3d %10.4e %10.4e %19.4e\n',new_nodes'); % new_nodes : my 2D matrix

=======================================

生成文件的内容没问题,但我无法在 Ansys 中读取它,当我在 Notepad++ 中打开此文件(例如 new_nodes.node)并执行 "save as" 时,它变得可读了!! !如果您能帮我找出 Matlab 代码的问题所在以及我该如何解决这个问题,那就太好了... 提前致谢,

可能是线闸出了问题。

w 而不是 wt

打开文件

当你添加 t 时,matlab 在你的 \n

之后添加一个 \r

[编辑@17:22]

fid = fopen('new_nodes.node', 'wt');
fprintf(fid,'%3d %10.4e %10.4e %19.4e\n',[pi 2.1 exp(1) 2.5]);
fclose(fid);
fid = fopen('new_nodes.node','r');
B = fread(fid,inf,'*uint8');
fclose(fid);

现在 B 包含 56 个值,总和为 2664。你得到什么?

如果我使用记事本++将它保存为new_nodes2.node,我会得到与 B 完全相同的值。