【发布时间】:2012-01-19 01:29:23
【问题描述】:
我正在尝试覆盖 Windows 上 Matlab 中已存在的 csv 文件。问题是有时我在 Excel 中打开了文件。在这种情况下,写入操作会失败。
在 Matlab 中是否有覆盖文件的方法?我不想使用 ActiveX 连接到 Excel 会话并以这种方式编辑文件。
看到this post about FileShare settings 让我觉得这是可能的,但似乎没有一个 fopen 参数能够做到这一点。 Excel 可能会锁定具有独占写入权限的文件,在这种情况下无法绕过它。有人知道如何检查吗?
问题示例:
% make csv file
x = magic(4);
csvwrite('foo.csv', x);
% open foo.csv in EXCEL
% try writing again
csvwrite('foo.csv', x); % cannot write a new file
[fid, msg] = fopen('foo.csv' ,'w'); % cannot open handle for writing
附带说明一下,当文件存在于 Linux 机器上时,我曾经能够覆盖在 Excel 中打开的文件,并且我通过网络在 Windows 机器上打开了该文件。
【问题讨论】:
-
您是否尝试在 Excel 中以只读模式打开文件?
-
我确信这会起作用,但我很懒,不想手动决定我要编辑哪些文件以及我可能在 Matlab 中覆盖哪些文件。
标签: matlab