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

如何在Ubuntu终端或Bash脚本中传入系统参数运行Matlab脚本

Matlab 终端运行脚本传入参数的实现方法

Matlab 没有和 Python sys.argv 完全对等的内置语法,你可以通过将脚本封装为入口函数的方式实现参数接收,适配终端/Bash 脚本调用的场景。

示例实现(对应你给出的 Python 示例)

1. 编写 Matlab 代码

将你的逻辑封装为函数,文件名需要和函数名完全一致,比如我们创建文件 sample.m,内容如下:

% 入口函数名和文件名保持一致,均为 sample
function sample(variable_name)
    % 直接使用传入的参数,这里实现打印功能
    disp(variable_name)
end

如果你需要接收任意数量的参数,可以用可变参数列表 varargin,用法和 sys.argv 类似:

function sample(varargin)
    % 读取第一个参数,和 sys.argv[1] 效果一致
    variable_name = varargin{1};
    disp(variable_name);
    % 你可以通过 length(varargin) 获取传入参数的总数量
end

2. 终端运行方式

版本要求 R2019a 及以上(推荐用法)

Matlab 提供了 -batch 参数专门用于无界面批处理,执行完自动退出,不需要额外配置:

$ matlab -batch "sample('arguments')"

旧版本 Matlab 兼容用法

如果你的 Matlab 版本低于 R2019a,用以下命令运行:

$ matlab -nodisplay -nosplash -nodesktop -r "sample('arguments'); exit"

Bash 脚本传参示例

如果要在 Bash 脚本中传递变量参数,注意引号转义即可:

#!/bin/bash
# 定义 Bash 变量
input_arg="测试参数"
# 传递到 Matlab 函数中
matlab -batch "sample('$input_arg')"

注意事项

  • 如果传入的是数值类型参数,你可以直接写数值不需要加引号,比如 sample(123, 45.6),也可以传入字符串后在 Matlab 代码中用 str2double() 做类型转换
  • 如果参数内容包含空格、特殊字符,一定要确保 Bash 层的引号包裹正确,避免解析错误
  • 如果你不想修改脚本为函数形式,也可以通过环境变量传递参数:Bash 层用 export 参数名=参数值 设置,Matlab 层用 getenv('参数名') 读取即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 23:06:02