我想在MATLAB中创建一个单独的txt文件,例如2GB大(简单来说不是GiB).它可以包含任意数据.
在
Python(或C)中,它可以简单地完成(Python 3.4代码):
path = r'D:\\file.txt'
f = open(path, 'w')
f.seek(2e9 - 1)
f.write('\x00')
f.close()
这种方法(即寻找过去的文件结束并写入单个NUL值)在MATLAB R2007b中不起作用,尽管这个方法在MATLAB中有效:
path = 'D:\file.txt';
f = fopen(path, 'w'); % or 'W'
fwrite(f, 0, 'uint8', 2e9 - 1);
fclose(f);
问题是使用MATLAB的速度几乎是Python的17倍….我没想到执行速度更快,但是17x太多,1分钟< - > 17分钟是一个差异的地狱.
在MATLAB中有更快的方法吗?
眼镜:
>操作系统:Windows
> MATLAB:R2007b
>文件系统:FAT32
编辑:
MATLAB中与Python相同的方法不起作用,因为fseek返回-1,可能它达到EOF并且不喜欢它.这是代码:
path = 'D:\file.txt';
f = fopen(path, 'w'); % or 'W'
fseek(f, 2e9 - 1, 'bof') ;
fwrite(f, uint8(0));
fclose(f);