麒麟系统运行matlab需四类方案:一、x86_64平台用qemu模拟运行官方安装包;二、docker部署matlab runtime运行编译后应用;三、用octave替代并兼容大部分.m脚本;四、远程调用局域网windows主机matlab引擎。

如果您在麒麟操作系统上需要运行科学计算任务,但Matlab官方未提供原生ARM或国产CPU架构支持包,则需通过兼容性方案部署。以下是实测可行的安装与运行方法:
一、使用官方x86_64版本+QEMU用户态模拟(适用于Intel/AMD平台麒麟OS)
该方法适用于搭载x86_64架构CPU的麒麟桌面系统(如V10 SP1),利用系统原生兼容性直接运行Matlab官方Linux安装包,无需虚拟机开销。
1、确认系统架构与依赖:执行uname -m确认输出为x86_64;运行sudo apt install libx11-6 libxt6 libncurses5 libstdc++6 zlib1g libfreetype6 libfontconfig1 libsm6 libice6 libxrender1 libxext6安装图形与基础库。
2、下载Matlab R2023b或更新版Linux安装包(.zip格式),解压至本地目录,例如/opt/matlab-install。
3、切换至安装目录,执行sudo ./install -mode silent -agreeToLicense yes -destinationFolder /usr/local/MATLAB/R2023b进行静默安装。
4、配置环境变量:将export PATH="/usr/local/MATLAB/R2023b/bin:$PATH"写入~/.bashrc,并执行source ~/.bashrc生效。
5、验证启动:终端输入matlab -nodisplay -r "ver; exit",若输出版本信息且无报错,则核心运行环境就绪。
二、通过Docker容器运行Matlab Runtime(适用于所有支持Docker的麒麟OS)
该方法不安装完整Matlab,仅部署Matlab Compiler Runtime(MCR),用于运行已编译的.exe或.ctf应用,大幅降低资源占用与授权依赖。
1、确保麒麟OS已启用Docker服务:执行sudo systemctl enable docker && sudo systemctl start docker,并添加当前用户至docker组:sudo usermod -aG docker $USER,重新登录终端。
2、拉取官方MCR基础镜像(以R2023b为例):sudo docker pull mathworks/matlab-runtime:r2023b。
3、准备含run_your_app.sh和your_app.ctf的应用目录,执行容器映射运行:sudo docker run --rm -v $(pwd):/mnt -w /mnt mathworks/matlab-runtime:r2023b ./run_your_app.sh。
4、关键提示:必须使用与编译环境完全一致的MCR版本号,否则触发“version mismatch”错误。
三、采用Octave替代方案并桥接Matlab脚本(适用于无商业授权场景)
GNU Octave是高度兼容Matlab语法的开源科学计算环境,麒麟OS软件源中已预置适配包,可直接运行大部分.m脚本,适合教学、原型验证与轻量仿真。
1、安装Octave及常用工具箱:sudo apt update && sudo apt install octave octave-symbolic octave-control octave-signal octave-image octave-geometry。
2、启用Matlab兼容模式:启动Octave后执行pkg load symbolic; ver; matlab_structures = 1;,提升.m文件解析兼容性。
3、运行脚本:将Matlab脚本保存为script.m,在Octave中执行source("script.m");对含input()、waitforbuttonpress等GUI交互语句的脚本,需替换为Octave等效函数。
4、重要限制:Simulink模型、Java/Python接口调用、深度学习工具箱(Deep Learning Toolbox)功能不可用。
四、远程调用局域网内Windows主机上的Matlab服务
该方法适用于麒麟OS作为科研终端、而单位已有Matlab许可证服务器的场景,通过TCP/IP协议调用远程Matlab引擎,本地零安装、零授权成本。
1、在Windows主机上安装Matlab R2022a或更新版,启用MATLAB Engine API for Python:运行cd(matlabroot + "/extern/engines/python"); system("python setup.py install")。
2、编写服务端脚本matlab_engine_server.py,监听指定端口(如50001),接收JSON格式计算请求并返回结果。
3、麒麟OS端安装Python3及requests库:sudo apt install python3-pip && pip3 install requests。
4、调用示例:curl -X POST http://192.168.1.100:50001/eval -H "Content-Type: application/json" -d '{"code":"A = rand(3); eig(A)"}'。
5、安全前提:Windows防火墙需放行对应端口,且网络处于可信局域网环境。










