徐州如何提高网站建设,wordpress媒体库播放器,深圳物流公司网站,旅行社 网站系统测试环境
VisualStudio2022 / .NET Framework 4.7.2 Matlab2021b 参考#xff1a;C# Matlab 相互调用
Matlab
1、编写Matlab函数
可以没有任何参数单纯定义matlab处理的函数#xff0c;输出的数据都存在TXT中用以后期读取数据
function [result,m,n] TEST(list)
% 计算…测试环境
VisualStudio2022 / .NET Framework 4.7.2 Matlab2021b 参考C# Matlab 相互调用
Matlab
1、编写Matlab函数
可以没有任何参数单纯定义matlab处理的函数输出的数据都存在TXT中用以后期读取数据
function [result,m,n] TEST(list)
% 计算 矩阵与其转置矩阵的乘积
% 测试返回多个结果
result list*list;
[m,n] size(result);% 文件名
filename result.txt;
% 将矩阵存入TXT
writematrix(result,filename);
end2、打包Matlab函数
APP中找到库编译器 Library Compiler 打包函数 1选择目标类型TYPE 2添加需要打包的函数文件 3重命名库名称 4重命名类名称或者添加类分配函数所属类 5打包操作 如下图所示生成打包文件 emsp在生成的文件中找到 “for_redistribution_files_only” 文件夹里面有 TESTNative.dll 和TEST.dl l两个dll文件均可使用。另外在c#还需要用格式进行转换需要MWArray.dll。该文件在Matlab安装目录中参考路径 X:\Program Files\MATLAB\R2021b\toolbox\dotnetbuilder\bin\win64\vX.0\ x表示不同安装的不同路径
C#
1、效果演示
添加引用 TESTNative.dll 和 MWArray.dll C#调用代码 这里用一个按键控件做演示在该按键的触发函数中调用Matlab函数
//添加引用
using System;
using TESTNative;
using MathWorks.MATLAB.NET.Arrays; //触发代码
private void TEST_Click(object sender, EventArgs e){int[,] list { { 1 }, { 2 }, { 3 }, { 4 } }; //列向量MWArray array new MWNumericArray(list); //转换list格式TESTNative.Cal ts new Cal();//定义目标类object resultObj ts.TEST(1, array);// 1表示返回的结果数量要小于等于Matlab对应函数实际的返回值数量//转换返回值object[] resultObjs (object[])resultObj;double[,] calcResult (double[,])resultObjs[0];}点击按键触发函数生成的矩阵结果存入TXT中
2、遇到的问题记录
无法运行提示下图错误 解决办法 在项目属性中将生成的目标平台该为x64 点击按键时可能会出现串口分辨率变化的情况 Matlab代码在运行过程中窗口大小改变了。 解决方法 首先确认.m代码中没有修改窗口大小的代码然后屏幕设置里调整屏幕缩放大小为100%可以解决