% Name of the excel file
filename = 'directory\output.xls';
% Name of the sheet you wan to delete
sname='corner';
% Open Excel as a COM Automation server
Excel = actxserver('Excel.Application');
% Open Excel workbook
Workbook = Excel.Workbooks.Open(filename);
%get a handle to the sheet
hsheet=Excel.Sheets.Item(sname);
hsheet.Delete
% Now save/close/quit/delete
Workbook.Save;
Excel.Workbook.Close;
invoke(Excel, 'Quit');
delete(Excel)
上面的代码是用于其他文件名但不是我要删除的文件...为什么?警告如下:
Warning: Function directory\norm.m has the same name as a MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.
但是,norm.m不是函数,是脚本和norm.m的结果将是output.xls ...我该如何解决呢?
答案 0 :(得分:0)
Matlab附带了一个名为norm
的Matlab函数。如果您将文件重命名为其他内容,它将停止抱怨。另一方面,这也不应该制动您的程序。它应该仍然可以工作,即使有这个警告。它与您要删除的文件无关。
答案 1 :(得分:0)
使用which
命令查找名为norm.m
的文件。此命令应列出内置命令和MATLAB Search Path上的任何其他m文件(函数或脚本)。
如果您发现自己创建的norm.m
文件由于已在源代码中的许多位置使用而无法重命名,则需要grep
您的源代码重命名那些。否则,无法保证您的版本或MATLAB版本是否会被调用。
以下引用直接来自MATLAB的online docs:
检测并解决名称冲突
MATLAB可能不是 访问您想要的文件 当:
- 您使用文件并收到有关潜在名称冲突的警告。
- 你会得到意想不到的结果。
要识别名称冲突,请尝试使用
which
功能。要解决名称冲突,请尝试以下方法之一:
- 更改当前文件夹。
- 移动或删除搜索路径上的文件夹。
- 重命名或移动文件。
- 指定所需文件的完整路径或部分路径。
- 维护单个版本的文件而不是多个版本。
使用您创建的文件可能会产生名称冲突。使用时也会产生冲突:
- 其他人创建的文件,例如来自文件交换
- 安装了其他MathWorks产品的其他系统
- 不同版本的MATLAB,可能包含与现有文件同名的新功能