You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MATLAB循环中运行mcc -mv?编译Myfiles_k.m报错求助

解决MATLAB循环中使用mcc编译变量文件名的问题

你的问题很典型——直接在mcc命令里用变量名fname,MATLAB会把它当成字面文件名"fname.m",而不是你循环里拼接出来的Myfiles_1.m、Myfiles_2.m这类目标文件,所以才会报错说无法确定文件类型。

两种可行的解决方法:

方法1:用eval执行拼接好的命令字符串

把mcc命令和变量值拼接成完整的命令文本,再用eval执行:

for i=1:n
    fname = ['Myfiles_',num2str(i),'.m'];
    eval(['mcc -mv ', fname]);
end

这样每次循环都会生成对应文件名的编译命令,MATLAB能正确识别要编译的文件。

方法2:用system调用系统命令

如果不想用eval,可以用system函数直接调用系统层面的mcc命令,效果是一样的:

for i=1:n
    fname = ['Myfiles_',num2str(i),'.m'];
    system(['mcc -mv ', fname]);
end

这种方式在处理带特殊字符的文件名时更稳妥,也能避免eval可能带来的一些潜在风险。

额外注意事项:

  • 确保所有Myfiles_k.m都在当前MATLAB工作目录里,或者在fname里加上完整文件路径(比如fname = ['D:/MATLAB_files/Myfiles_',num2str(i),'.m'];)
  • 确认你已经安装了MATLAB Compiler工具箱,mcc命令是依赖这个工具箱的,没装的话也会出现类似报错。

内容的提问来源于stack exchange,提问作者P_0frF67

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:26:21