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 完全相同的值。
我正在尝试在 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 完全相同的值。