环境:VS2017+MATLAB R2017a

①打开上次我们生成的BPClass.cs文件(目录:~//bin/BP/for_testing),得在C#程序中引用生成的dll文件(目录:~//bin/BP/for_redistribution_files_only)

②Methods里面写了调用方法,并给出了详尽的注释(这里的numArgsOut是输出参数的数量,可以看注释)

/// /// Provides the standard 7-input MWArray interface to the BP MATLAB function.

///

/// /// M-Documentation:

/// 以下六行是BP网络最核心的程序

/// 他们是权值(阈值)依据能量函数负梯度下降原理所作的每一步动态调整量

///

/// The number of output arguments to return.

/// Input argument #1

/// Input argument #2

/// Input argument #3

/// Input argument #4

/// Input argument #5

/// Input argument #6

/// Input argument #7

/// An Array of length "numArgsOut" containing the output

/// arguments.

///

public MWArray[] BP(int numArgsOut, MWArray gdp, MWArray steelProduction, MWArray

autoProduction, MWArray highwayMileage, MWArray outputAmount, MWArray

outputMoney, MWArray forecast)

{

return mcr.EvaluateFunction(numArgsOut, "BP", gdp, steelProduction, autoProduction, highwayMileage, outputAmount, outputMoney, forecast);

}

因为MATLAB中定义的函数是这样子的:

function [输出变量] = 函数名称(输入变量)

function ForecastResult=BP(gdp,steelProduction,autoProduction,highwayMileage,outputAmount,outputMoney,forecast)

所以我是这样调用的:

for (int q = 0; q < 20; q++)

{

gdpPre[q] = arr[q, 0];

steelProductionPre[q] = arr[q, 1];

autoProductionPre[q] = arr[q, 2];

highwayMileagePre[q] = arr[q, 3];

outputAmountPre[q] = arr[q, 4];

outputMoneyPre[q] = arr[q, 5];

}

MWNumericArray gdp = gdpPre;

MWNumericArray steelProduction = steelProductionPre;

MWNumericArray autoProduction = autoProductionPre;

MWNumericArray highwayMileage = highwayMileagePre;

MWNumericArray outputAmount = outputAmountPre;

MWNumericArray outputMoney = outputMoneyPre;

MWNumericArray forecast = new MWNumericArray(4, 1, new double[] { Convert.ToDouble(GDPtextBox.Text.Trim()), Convert.ToDouble(steelProductiontextBox.Text.Trim()), Convert.ToDouble(autoProductiontextBox.Text.Trim()), Convert.ToDouble(highwayMileagetextBox.Text.Trim()) });

BP.BPClass function = new BP.BPClass();

MWArray[] result = function.BP(1, (MWArray)gdp, (MWArray)steelProduction, (MWArray)autoProduction, (MWArray)highwayMileage, (MWArray)outputAmount, (MWArray)outputMoney, (MWArray)forecast);

MWNumericArray x = (MWNumericArray)result[0];

double[,] y = new double[1, 2];

y = (double[,])x.ToArray(MWArrayComponent.Real);

MessageBox.Show("预测销售数量:" + Convert.ToDouble(y[0, 0].ToString()) + "万件,预测销售利润:" + Convert.ToDouble(y[0, 1].ToString()) + "万元.", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

matlab messagebox函数,[MATLAB]在C#中引用MATLAB函数相关推荐

  1. jsp页面中引用fn函数

    jsp中fn函数的用法 想要引用fn函数,首先要先引入fn标签,在jsp头部引入<%@ taglib prefix="fn" uri="http://java.su ...

  2. java中函数的调用,java中如何调用函数

    java动态调用函数,Java 中使用动态代码,java函数调用,java中如何调用函数 如何在 Java 中调用 C 函数 宗薇 [期刊名称]<网络新媒体技术> [年(卷),期]2000 ...

  3. python自带的sum()函数和numpy库中的sum()函数的区别

    在学习<机器学习实战>一书的第十章时,对 return np.sqrt(sum(np.power(vecA - vecB, 2))) 这样一条语句输出的结果老是不对,明明想要输出的是对两个 ...

  4. python中lambda函数if用法-Python中关于Lambda函数的使用总结

    lambda表达式是一种匿名函数,对应python中的自定义函数def,是定义某个函数时比较高级的一种写法.作为python初学者,本文整理了lambda的一些基本用法和特点. lambda和def的 ...

  5. matlab中find函数_在R中使用Matlab函数

    R, Matlab MATLAB是一款商业数学软件, R是一个拥有庞大工具库的数据统计.建模.可视化分析软件.R 不仅支持C/C++, python代码的运行和工程移植, 也支持在R中使用MATLAB ...

  6. MATLAB解决线性规划问题,学会使用linprog函数,在一个实例中演示linprog函数各参数的用法

    最近接触到了一个线性规划的题目,尝试用MATLAB解决,动手前想了很多思路,上网搜索了一下发现MATLAB中有专门的linprog函数专门解决线性规划问题,了解学习后果然十分方便.事实上,绝大部分的线 ...

  7. 网页中调用matlab,在C#的Web项目中调用Matlab代码的步骤

    在C#的Web项目中调用Matlab代码的方法 为了毕设的图形检索方向的研究,本人需要在信科的师兄师姐们已经完成的C#界面中,调用现在研究的算法的Matlab代码,以便看到实验的效果.前段时间已经拖延 ...

  8. matlab 找不到 mcr,如何在没有MCR / MATLAB的情况下在C#中使用MATLAB编译的DLL?

    对不起,如果这个问题已被提出,但我找不到我一直在寻找的东西.我想知道是否有办法在C#中使用MATLAB编译的c-shared库而不使用MCR / MATLAB(或者通常任何其他安装),例如使用这个简单 ...

  9. C++中,引用作为函数参数

    引用作为函数参数 C++之所以增加引用类型, 主要是把它作为函数参数,以扩 充函数传递数据的功能. -------------------- c++,函数传参: (1)将变量名作为实参和形参.这时传给 ...

最新文章

  1. 使用axios上传文件+参数
  2. [UGUI]圆形Image
  3. 【解决方案】如何实现在HTML页面加载完毕后运行某个js
  4. Mapreduce的序列化和流量统计程序开发
  5. matlab 大括号
  6. 前端学习(2914):差值表达式的用法
  7. 奥的斯电梯tt服务器使用表_奥的斯电梯服务器TT使用说明1
  8. python迷宫起点终点所有路径_通向终点的路不止一条!python迷宫。
  9. Word2Vec学习笔记(五)——Negative Sampling 模型(续)
  10. 怎样通过vb设置透视表多项选择_数据透视表,数据统计分析的利器,你会了吗...
  11. python常用方法_python常用方法(持续更新)
  12. 《硅谷钢铁侠》---- 读书笔记
  13. 局域网联通公网小部分知识点
  14. U盘量产,以及U盘“请将磁盘插入u盘”等问题。
  15. 基于深度相机的下肢外骨骼的自适应梯级步态生成方法
  16. IPage能正常显示数据,但是total一直等于0
  17. 匿名管道和命名管道(代码剖析)
  18. JSP内置对象和四大作用域
  19. C语言中的++和--运算符
  20. 腾讯免费企业邮箱服务器,怎样使用免费的腾讯企业邮箱

热门文章

  1. 常见问题:内存,循环引用,runloop的简单理解
  2. selenium之窗口操作
  3. Spring Boot整合模板引擎jsp
  4. ORACLE11G 将dataguard的rman备份恢复到测试环境的单机oracle中的详细过程
  5. 【教程】简易CDQ分治教程学习笔记
  6. iOS 新特性分列式 之 iOS 8.x - 主要内容:应用扩展、手动对焦、Size Class
  7. IOS 中的MVC设计模式
  8. apache prefork和worker
  9. pxe和kickstart无人值守安装
  10. [转]学习Objective-C: 入门教材