MSVS C# Matlab的混合编程系列2 - 构建一个复杂(含多个M文件)的动态库:

news2025/1/11 1:16:10

 前言:

本节我们尝试将一个有很多函数和文件的Matlab算法文件集成到C#的项目里面。

本文缩语:

MT = Matlab


问题提出:


1 我们有一个比较复杂的Matlab文件:

 这个MATLAB的算法,写了很多的算法函数在其他的M文件里面,这样,前面博客的方法就不够用了。会报错:

解决办法如下: 


写在前面的结论:

1 你要用一个外壳函数,封装你的最上层的M文件

2 去掉不必要的M文件间的耦合,把M文件的参数都写到 外壳函数上


 步骤:

1 编译:

1.1 常规操作: 多入口报错

 【报错】只能接受具有单个入口函数的 MATLAB 函数和 MEX 文件作为导出函数。未添加以下文件因为它们不是可接受的文件类型,或者包含在 MATLAB 根目录下: 

MT ,显然不支持多个入口函数的Matlab的源码:

【解决办法,封装成一个大函数】用一个function包起来就好了

function ballfitting(fname)
% Your code here
end

这里笔者,

1.1.1 还没有MT的输出参数的传递。

在MT命令行窗口调用deploytool

对C#的输出,MT里面我们选取如下: 

 1 using the Matlab .NET Assembly

 上图中,是没有MATLAB的输出参数的情况:但是,已经自动,把所有的MT相关的原文件都加了。

1.1.2 有MT的输出参数的传递的外壳函数封装。
function [centers,angle_degree] = findid_v1(filename)

... // your code

end

上面,

笔者给MT的外壳函数加了2个输出的的变量,和一个输入变量。

注意:外壳函数的现在的名称,findid_v1似乎没啥用,即使在C#调用,也没有用到。

然后,我们调用在MT中,命令行调用,deploytool,和前面一样。

 上图,自动,把所有的MT相关的原文件都加了的同时,大家应该注意到,

类MTFindid,多了两个输入的参数。

1.2 注意库的版本,最好每次更新M的原文件的时候,选择更新一下版本号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1402001.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[学习笔记]刘知远团队大模型技术与交叉应用L3-Transformer_and_PLMs

RNN存在信息瓶颈的问题。 注意力机制的核心就是在decoder的每一步,都把encoder的所有向量提供给decoder模型。 具体的例子 先获得encoder隐向量的一个注意力分数。 注意力机制的各种变体 一:直接点积 二:中间乘以一个矩阵 三:…

Opncv模板匹配 单模板匹配 多模板匹配

目录 问题引入 单模板匹配 ①模板匹配函数: ②查找最值和极值的坐标和值: 整体流程原理介绍 实例代码介绍: 多模板匹配 ①定义阈值 ②zip函数 整体流程原理介绍 实例代码: 问题引入 下面有请我们的陶大郎登场 这张图片是我们的陶大郎,我们接下来将利用陶大郎来介绍…

恒悦sunsite博客2023年总结及2024年展望

一、2023年总结 一年如一日的坚持做好一件事并不是容易的事情,但是只要我们坚持下去,乘风破浪会有时,直挂云帆济沧海。   2023年是意义非凡的一年,年初的时候自己定下了两个目标:第一个是完成博客专家认证&#xff1…

HarmonyOS鸿蒙应用开发 (一、环境搭建及第一个Hello World)

万事开头难。难在迈出第一步。心无旁骛,万事可破。没有人一开始就能想清楚,只有做起来,目标才会越来越清晰。--马克.扎克伯格 前言 2024年1月16日,华为目前开启已HarmonyOS NEXT开发者预览版Beta招募,报名周期为1月15…

做好销售人员激励的3个要诀

企业合并是企业发展的重要战略手段之一。许多成长中的企业在经过一段时间的积累后,为了获得快速成长,实现规模效应,通常会采用合并的手段实现目标,同时企业会制定新型政策规范企业管理。但是在制定政策之前,企业通常会…

到店商详架构变迁

一、项目背景 到店商详是平台为京东到店业务提供的专属商详页面,将传统电商购物路径打造成以LBS门店属性的本地生活服务交易链路。 二、架构变迁 1、 主站商详扩展点 **优点:**到店侧仅关注业务,无需过度关注服务部署、性能优化等。 **缺…

Java实现大学计算机课程管理平台 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2.3 学生实验模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 实验课程档案表3.2.2 实验资源表3.2.3 学生实验表 四、系统展示五、核心代码5.1 一键生成实验5.2 提交实验5.3 批阅实…

数字IC笔试题——门控时钟与控制信号电平、与门门控、或门门控、上升沿门控、下降沿门控

门控时钟问题。 (华为-2019-芯片-数字-34) 从后端设计考虑,在必须使用门控时钟的时候,需要遵循一个原则:门控时钟的输出只能跟着时钟信号进行跳变,而不能跟着控制信号进行跳变,也就是说对于用N…

【订单领域】如果订单要分库分表,如何确认最佳库表数量?

🎉欢迎来系统设计专栏:如果订单要分库分表,如何确认最佳库表数量? 📜其他专栏:java面试 数据结构 源码解读 故障分析 🎬作者简介:大家好,我是小徐🥇☁️博客首页&#x…

python-分享篇-draw heart

文章目录 heart代码效果 draw-heart代码效果 heart-shape-chart代码效果 heart-stitching-by-string代码效果 love-you代码效果 heart 代码 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3Ddef heart_3d(x,y,z):return (x**2(9…

用友NC portal/file 任意文件读取漏洞复现

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友NC 系统 /portal/file等接口存在任意…

文心一言4.0参数配置

链接:百度智能云千帆大模型平台 文心一言API使用教程(python版)_python_蓝桉155-百度飞桨星河社区 检查代码的逻辑错误:# 定义一个后台进程类,继承自subprocess.Popen class BackgroundProcess(subprocess.Popen): d…

2023年12月青少年机器人技术等级考试(四级)理论综合试卷

2023年12月青少年机器人技术等级考试(四级)理论综合试卷 单选题 第 1 题 单选题 Arduino UNO/Nano主控板,当数字引脚输出信号为高电平时,对应的电压是 ?( ) A.0V B.5V C.-0.5 ~ 1.5V D.3…

数据结构之顺序表的增删查改

别丢了你的勇敢 前言: 自今日起,我们正式越过C语言的大山,走向了数据结构的深山,现如今摆在我们面前的第一个坎就是顺序表,我们需要了解顺序表的定义,并且知道,如何对其进行增删查改&#xff0…

欧科云链与《警察技术》联合发布技术专题.pdf

欧科云链受《警察技术》邀请,于第201期期刊正式刊登“区块链生态安全与虚拟货币犯罪治理”技术专题。欧科云链作为该技术专题主要作者,直接参与本次期刊2篇文章撰写,同时为多篇文章提供欧科云链的最新数据和研究成果。 《警察技术》期刊创办于…

HuoCMS|免费开源可商用CMS建站系统HuoCMS 2.0下载(thinkphp内核)

HuoCMS是一套基于ThinkPhp6.0Vue 开发的一套HuoCMS建站系统。 HuoCMS是一套内容管理系统同时也是一套企业官网建设系统,能够帮过用户快速搭建自己的网站。可以满足企业站,外贸站,个人博客等一系列的建站需求。HuoCMS的优势: 可以使用统一后台…

x-cmd pkg | yq - 命令行 YAML处理工具

目录 简介首次用户支持格式转换友好的显示和操作语法与 jq 类似竞品和相关作品进一步阅读 简介 yq (YAML Query) 是一个轻量级的 YAML、JSON、XML 处理器,主要用于查询和提取 YAML 数据。 本 yq 的包来自 mikefarah/yq 项目,语法类似于 jq 。相比 kisly…

【Python】使用Anaconda创建PyTorch深度学习虚拟环境

使用Anaconda Prompt 查看环境: conda env list 创建虚拟环境(python3.10): conda create -n pytorch python3.10 激活创建的环境: conda activate pytorch在虚拟环境内安装PyTorch: 【Python】CUDA11.7/11.8安…

LMDeploy 大模型量化部署实践

文章目录 核心功能量化推理引擎推理服务 量化原理补充 部署: 在设备上运行起来,能够接受输入,返回输出。 最重要的就是性能和效率方面的考虑。大模型也是模型的一种,内存开销大,7b 要14G左右的显存。 因为是自回归的方…