背景与动机
虽然 MATLAB 2025a 已支持 Copilot,但受限于地区和网络环境,许多用户无法正常使用。在 MATLAB 与 ChatGPT、DeepSeek 等外部 AI 工具之间频繁切换,不仅打断思路,也无法实现所见即所得的代码生成。
为了解决这一痛点,我们开发了一款基于 DeepSeek 大模型的本地化辅助工具。它直接在 MATLAB 平台运行,无需切换软件,支持从自然语言输入到代码生成、调试、修复及导出的全流程闭环。该方案兼容多版本 MATLAB,且使用成本可控。
核心功能设计
1. 自然语言转代码
在界面输入区描述需求,点击'生成'按钮即可调用 DeepSeek 模型。生成的代码会自动填充至编辑器,并附带必要的注释说明,无需手动调整格式即可直接运行。
2. 智能报错修复
工具会捕获运行时的错误信息(含文件名、行号及具体描述)。点击'修复'后,AI 会根据错误上下文重新生成代码,并在注释中解释修改逻辑。这种边修边学的模式有助于理解错误根源,避免重复踩坑。
3. 全生命周期管理
- 运行:自动保存为
.m文件并执行,结果直接在 MATLAB 窗口展示。 - 导出:选择路径保存为
.m文件,便于分享或备份。 - 复制/打开:一键拷贝代码或在 MATLAB 编辑器中打开。

技术实现细节
API 调用模块
核心在于封装 webwrite 函数与 DeepSeek 接口。通过构建包含 System Prompt 的请求体,强制模型仅返回 MATLAB 代码并添加注释。同时处理 Markdown 代码块的清洗逻辑,确保输出纯净。
function code = help_DeepSeek(obj, userPrompt)
if isempty(apiKey) || isempty(url)
code = '%% 错误:未读取到有效的 DeepSeek 配置';
return;
end
requestBody = struct('model', 'deepseek-chat', ...
'messages', {struct('role','system','content','仅返回 MATLAB 代码,添加必要注释'), ...
struct('role','user','content',userPrompt)}), ...
'stream', false);
requestHeaders = {'Content-Type','application/json; charset=utf-8', ...
'Authorization',['Bearer ',apiKey]};
requestOptions = weboptions('HeaderFields',requestHeaders, ...
'ContentType','json','Timeout',40);
try
apiResponse = webwrite(url, requestBody, requestOptions);
if isempty(apiResponse.choices)
code = '%% 错误:DeepSeek 未返回有效结果';
return;
end
rawCode = string(apiResponse.choices.message.content);
cleaned = regexprep(rawCode, '```[a-zA-Z]*', '');
cleaned = regexprep(cleaned, '```', '');
code = strtrim(cleaned);
catch ME
code = sprintf('%% DeepSeek 请求失败:%s', ME.message);
end
end
错误捕获与修复逻辑
利用 MATLAB 的异常捕获机制获取 LastError,将其作为上下文再次发送给 API。这种方式实现了二次调用的自动化修复流程。





