假设一个包含 7718 个字符的文本文件(例如从这里剪切和粘贴的内容)
fileread('myfile.txt')
当我启动 matlabmatlab -nodesktop
但在桌面模式下工作时,该命令失败。
有谁知道为什么?
如果文本文件中的字符数减少到 1981,它将在-nodesktop
模式下工作。
注意:我不知道它停止工作的确切字符数。
最后,我在 Windows7 上使用 Matlab 7.8.0 (R2009a)。
我无法重现这种奇怪的行为(Matlab 2010b 和 2012b,都在 Linux 上)。
您至少可以尝试通过限制问题来“调试”此类行为。“fileread”例程对文件名(ischar,isempty)进行一些检查,然后打开文件(fopen),读取它(fread)并关闭它(fclose)——相当简单的基本内容。作为参考,请在 matlab 桌面的命令行中键入“edit fileread”,然后尝试逐步运行该例程。
如果“fread”导致整个事情崩溃,并且如果您绑定到这个版本的 Matlab,请尝试实施“修复”。"fread" 接受的参数比 "fileread" 中使用的参数多(仅文件 ID 和精度 "char"):FREAD(FID,SIZE,PRECISION,SKIP,MACHINEFORMAT)。指定更多参数可能会有所帮助(疯狂猜测但值得一试)。