matlab和java混合编程经验分享

news/2025/2/23 2:43:41

最常用的就是可以查到再控制栏deploytool选择library complier打包,但是有问题就是比如果用了外部的求解器比如yalmip或者cplex的话用这个方法会找不到外部的求解器,网上找了很多,基本都大同小异。
后面分享一个亲测有效的打包方法,直接在控制栏输入

mcc -W 'java:myJavaPackage,PSO_SOCP' -T link:lib -d 'D:\matlab_output' -v 'D:\matlabwork\**.m' 'D:\matlabwork\*.m' -a 'D:\matlab\toolbox\YALMIP-master' -a 'D:\cplex\cplex\matlab'

‘D:\matlab_output’ 输出目录
‘D:\matlabwork**.m’ 'D:\matlabwork*.m’打包的包
‘D:\matlab\toolbox\YALMIP-master’ -a 'D:\cplex\cplex\matlab’外部依赖
详情可以参考这个
https://ww2.mathworks.cn/help/compiler/mcc.html#buth_o8

补充说明可能遇到的两个报错

错误使用 matlab.depfun.internal.cacheMtree (line 29)
MATLAB 代码 'D:\cplex\cplex\matlab\x64_win64\cplexoptimget.m' 包含以下语法错误:
L 22 (C 1): SYNER: 在 '.' 处出现解析错误: 使用的 MATLAB 语法可能无效。

出错 isClassdef>hasClassDef (line 37)
        mt = matlab.depfun.internal.cacheMtree(file);

出错 isClassdef (line 21)
            tf = hasClassDef(file);

出错 className_impl (line 118)
    elseif isfullpath(whichResult) && isClassdef(whichResult)

出错 className (line 64)
        [clsName, clsFile] = className_impl(whichResult);

出错 matlab.depfun.internal.MatlabSymbol/determineClassType (line 722)
            [name, clsFile] = className(symObj.WhichResult, symObj.Symbol);

这个是因为我不知道什么时候动了这个文件夹的代码,多了个‘,’,代开这个文件去掉就行
错误2


The file  
 'D:\matlab\toolbox\YALMIP-master\modules\dummy.m'  
 is empty (zero bytes long).  
 
 This file cannot be added to the CTF archive because it will cause an error  
 when the application or library is run. Add valid content to this file if 
 your application or library requires this file. 
Failed to build CTF file: 'D:\matlab_output\myJavaPackage.ctf'. 
Call to mcc failed with return code 1 (0x1).

这个是因为这个文件是dummy.m 是 YALMIP 工具箱中的一个文件,通常用于占位或其他辅助功能。

function dummy()
    % Dummy function to satisfy MATLAB Compiler
    disp('This is a placeholder function.');
end

打开这个文件往里面加一行这个就行


http://www.niftyadmin.cn/n/5862914.html

相关文章

BUU40 [安洵杯 2019]easy_serialize_php

题目源代码 <?php$function $_GET[f];function filter($img){$filter_arr array(php,flag,php5,php4,fl1g); //implode 函数将数组 $filter_arr 中的元素用 | 连接成一个字符串。 // |在正则表达式中表示或的关系&#xff0c;所以连接后的字符串类似于 php|flag|php5|ph…

Eclipse 透视图 (Perspective)

Eclipse 透视图 (Perspective) Eclipse 是一款强大的集成开发环境(IDE),广泛应用于 Java 开发领域。其中,透视图(Perspective)是 Eclipse 中的一个核心概念,它将不同的工具和视图组合在一起,以便开发者能够更高效地完成特定的开发任务。本文将详细介绍 Eclipse 透视图…

什么是手机9008模式?如何进入9008

之前给大家分享了一些有关手机刷机的知识&#xff0c;今天给大家讲一讲如果刷机过程中不慎变砖应该如何应对&#xff08;当然了&#xff0c;希望大家都不会遇到&#xff09;&#x1f602;&#x1f604; 在给手机 Root 或刷机时&#xff0c;线刷 9008 指的是利用 高通 9008 模式…

Unity游戏制作中的C#基础(3)加减乘除算术操作符,比较运算符,逻辑与,或运算符

1. 基本算术运算符 算术运算符主要用于对数值类型&#xff08;整型和浮点型&#xff09;进行基本的数学运算。以下是常见的算术运算符及其说明&#xff1a; 运算符描述示例结果加法运算符&#xff0c;用于两个数相加&#xff0c;也可用于字符串连接int a 5 3; string str &…

Node.js中不支持require和import两种导入模块的混用

最近在整理Node.js相关的知识点&#xff0c;发现通过Node.js支持的两个模块导入语句require和import在同时使用时会发生错误&#xff0c;而且错误非常诡异。 例如&#xff0c;在先使用require导入模块&#xff0c;在使用import导入模块时&#xff0c;出现require无法识别&#…

从网络延迟到纯净IP,TikTok直播运营专线如何提升直播体验

随着TikTok在美国市场的全面恢复&#xff0c;越来越多的企业开始关注如何通过TikTok直播实现业务增长。然而&#xff0c;跨境直播运营中常常面临网络延迟、IP限制等问题&#xff0c;这直接影响直播效果和用户体验。针对这一痛点&#xff0c;TikTok直播运营专线应运而生&#xf…

Linux 内核中关于 CPU 编号和拓扑管理

CPU 拓扑结构定义 // topology.h struct cpu_topology {int thread_id; // SMT IDint core_id; // 核心 IDint package_id; // 物理 CPU IDint die_id; // Die IDcpumask_t thread_sibling; // SMT 线程掩码cpumask_t core_sibling; // 核心掩码 };CPU 在线…

php session数据存储位置选择

PHP session 数据的存储位置可以通过配置文件或者代码来进行设置。默认情况下&#xff0c;session 数据是存储在服务器的文件系统中的。你可以将 session 数据存储在其他地方&#xff0c;例如数据库、缓存等。 基础概念 PHP session默认情况下将数据存储在服务器端的临时文件中…