登录论坛

查看完整版本 : [MATLAB混合编程] 关于fwrite


tigermatlab
2009-05-09, 22:45
a=[1 2 3 4 5 6 7 8 9]

a =

1 2 3 4 5 6 7 8 9
fid=fopen('aa.txt')

fid =

3
fwrite(fid,a,'integer*4')

ans =

0
请问,fwrite的结果为什么没有把a的数据写入aa.txt中?
请高手赐教

ww8065
2009-05-10, 00:52
呵呵,试试这样
fid=fopen('aa.txt','w')

tigermatlab
2009-05-10, 11:53
谢谢你,实验证明您说的有理。
我又进行了如下实验:

a=[7 8 9]
fid=fopen('mask.seg','w') % 创建一个文件mask.seg,以便于写入数据
count=fwrite(fid,a,'int8') % 把数据a写入mask.seg
m=fread(fid) % 把写入的数据读取出来

但实验出现了如下结果:
a =

7 8 9


fid =

3


count =

3

m是一个4093×1的数组

请问m为什么会是这个结果呢?为什么有 4093个呢?

silas_xue
2009-05-10, 12:05
lz 你可以阅读一下fopen中关于fid的解释
fid is a scalar MATLAB integer, called a file identifier.

apple888
2009-05-10, 16:32
你需要将以打开的文件关闭,然后再读就得到所写入的数据

tigermatlab
2009-05-12, 10:34
lz 你可以阅读一下fopen中关于fid的解释
fid is a scalar MATLAB integer, called a file identifier.
是的,我试了,如你所言是对的。谢谢!

tigermatlab
2009-05-12, 10:35
你需要将以打开的文件关闭,然后再读就得到所写入的数据
是的,我试了,如你所言是对的。谢谢!