C#调用Matlab神经网络工具箱

问题描述

用deploytool将M文件做成.dll文件,后用C#调用提示错误...MWMCR::EvaluateFunctionerror...Thelefthandsideisinitializedandhasanemptyrangeofindices.However,therighthandsidereturnedoneormoreresults.Errorin=>BP_ANN_1.matline4.其中M函数为functiony=BP_ANN_1(input,output,testIn,testOut)input=input';output=output';inputNorm=premnmx(input);net=newff(minmax(input),[61],{'logsig''purelin'},'traingdx');net.trainparam.epochs=10000;net.trainparam.goal=0.001;net.divideFcn='';net=train(net,inputNorm,output);testIn=testIn';testOut=testOut';testInNorm=premnmx(testIn);y=sim(net,testInNorm);C#程序为MWNumericArrayb=newMWNumericArray(MWArrayComplexity.Real,4,1);MWNumericArrayc=newMWNumericArray(MWArrayComplexity.Real,2,2);MWNumericArrayd=newMWNumericArray(MWArrayComplexity.Real,2,1);a[1,1]=1;a[1,2]=1;a[2,1]=0;a[2,2]=1;a[3,1]=1;a[3,2]=0;a[4,1]=0;a[4,2]=0;b[1,1]=1;b[2,1]=0;b[3,1]=0;b[4,1]=0;c[1,1]=1;c[2,1]=0;c[2,1]=1;c[2,2]=1;d[1,1]=0;d[2,1]=1;bp.BP_ANN_1(a,b,c,d);有没有做过这方面的大神给指条路啊!!!!!!!

解决方案

解决方案二:
楼主你好,请问你这个问题解决了么,我在做神经网络的时候,用c#调用也出现了这个问题,求指教。。。
解决方案三:
利用dll的形式不太可取,因为里面有太多的未知函数,建议楼主使用COM方式来调用matlab。
解决方案四:
楼主问题解决了么,也遇到一样的问题,同样是newff
解决方案五:
看看这个帖子对LZ有无帮助引用

嗯嗯。。现在问题已经解决了~!遇到问题:1.在C#引用的时候生成的.dll文件会遇到版本的问题。这时候我们要看自己用的VS版本和生成的是否一致。2.C#代码里面引用传值的时候要进行数据的转换。将c#的参数输入到matlab函数时,要将参数转化为matlab的参数形式,通常是MWArray类型.matlab返回的参数,也要转化为c#用的类型,比如数组或者数值类型。

http://bbs.csdn.net/topics/390340895
解决方案六:
我也遇到了同样的问题,请问大家是怎么解决的呢,期待高手指导,感激不尽!email:wwwbudaoweng@qq.com
解决方案七:
通过COM或者.NET组件是搞不定神经网络的,需要借助MATLAB引擎技术,具体参考http://blog.sina.com.cn/u/3603695961

时间: 2024-09-30 02:34:13

C#调用Matlab神经网络工具箱的相关文章

matlab神经网络工具箱

问题描述 有40个随机输入变量,100组样本,72个输出变量怎么编写输入输出矩阵呢 解决方案 解决方案二:没搞过,不了解具体原理.帮你顶起来

matlab-MATLAB单层感知器神经网络工具箱的学习率怎么设置?

问题描述 MATLAB单层感知器神经网络工具箱的学习率怎么设置? 刚接触神经网络,在使用matlab神经网络工具箱时,发现所有的关于单层感知器网络的学习率在程序中都没有设置. 是不是在工具箱函数中有一个默认的设置?设置的是0到1的随机数吗? 解决方案 去看matlab的相关documentation会有帮助的~

VB调用Matlab在WEDM仿真系统中的应用

基于BP神经网络的电火花线切割(WEDM)工艺仿真系统需要具有工艺数据库管理 .工艺效果预测.加工参数优化等设计功能.借助Matlab的神经网络工具箱,可 以建立良好的工艺效果预测模型和参数优化模型,这正是工艺仿真软件最主要的 功能要求.VB是Windows操作系统下优秀的可视化编程工具软件,在用户界面设计 和快速开发等方面具有独特的优势.同时,Matlab仿真软件以其强大的科学计算 功能和开放式开发思想使其成为当前最为流行的仿真计算工具.综合两种开发环 境各自的优势,可采用VB与Matlab混

《MATLAB神经网络超级学习手册》——1.2 MATLAB的特点及应用领域

1.2 MATLAB的特点及应用领域 MATLAB神经网络超级学习手册 MATLAB有两种基本的数据运算量:数组和矩阵,二者单从形式上不好区分.每一个变量可能被当作数组,也可能被当作矩阵,这要依靠所采用的运算法则或运算函数来定. 在MATLAB中,数组与矩阵的运算法则和运算函数是有区别的.但不论是MATLAB的数组还是MATLAB的矩阵,都已经改变了一般高级语言中使用数组的方式和解决矩阵问题的方法. 在MATLAB中,矩阵运算是把矩阵视为一个整体来进行,基本上与线性代数的处理方法一致.矩阵的加减

《MATLAB神经网络超级学习手册》——2.4 M文件

2.4 M文件 MATLAB神经网络超级学习手册 M文件有两种形式:脚本文件(Script File)和函数文件(Function File).脚本文件通常用于执行一系列简单的MATLAB命令,运行时只需输入文件名字,MATLAB就会自动按顺序执行文件中的命令. 函数文件和脚本文件不同,它可以接受参数,也可以返回参数,在一般情况下,用户不能靠单独输入其文件名来运行函数文件,而必须由其他语句来调用,MATLAB的大多数应用程序都以函数文件的形式给出. 2.4.1 M文件概述 MATLAB提供了极其

C++ Builder调用Matlab

Borland C++Builder是一种新颖的可视化编程语言.在工程应用中,我们一般用C++Builder语言编写应用程序,实现交互界面.数据采集和端口操作等,但C++Builder在数值处理分析和算法工具等方面,其效率远远低于Matlab语言.在准确方便地绘制数据图形方面,Matlab语言更具有无可比拟的优势.此外,Matlab还提供功能强大的工具箱.但Matlab的缺点是不能实现端口操作和实时控制.因此,若能将两者结合运用,实现优势互补,将获得极大的效益. 本文结合实际介绍了应用Borla

《MATLAB神经网络超级学习手册》——第1章 MATLAB简介 1.1 MATLAB的发展

第1章 MATLAB简介 本章主要介绍MATLAB软件的基本用途和方法.MATLAB是目前在国际上被广泛接受和使用的科学与工程计算软件.虽然Cleve Moler教授开发它的初衷是为了更简单.更快捷地解决矩阵运算,但现在的MATLAB已经发展成为一种集数值运算.符号运算.数据可视化.图形界面设计.程序设计.仿真等多种功能于一体的集成软件. 1.1 MATLAB的发展 MATLAB神经网络超级学习手册 20世纪70年代中后期,曾在密西根大学.斯坦福大学和新墨西哥大学担任数学与计算机科学教授的Cle

《MATLAB神经网络超级学习手册》——2.3 曲线拟合

2.3 曲线拟合 MATLAB神经网络超级学习手册 在科学和工程领域,曲线拟合的主要功能是寻求平滑的曲线来最好地表现带有噪声的测量数据,从这些测量数据中寻求两个函数变量之间的关系或者变化趋势,最后得到曲线拟合的函数表达式y=f(x). 一般来说,使用多项式进行数据拟合会出现数据振荡,而Spline插值的方法可以得到很好的平滑效果,但是关于该插值方法有太多的参数,不适合曲线拟合的方法. 同时,由于在进行曲线拟合的时候,已经认为所有测量数据中已经包含噪声,因此,最后的拟合曲线并不要求通过每一个已知数

《MATLAB神经网络超级学习手册》——导读

前言 MATLAB是国际上公认的最优秀的数值计算和仿真分析软件之一,并且具有很强的开放性.到目前为止,MATLAB平台已经推出了几十种针对不同应用的工具箱,其中为满足神经网络研究而开发的神经网络工具箱是其重要组成部分. 人工神经网络(Artificial Neural Network,ANN),是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经网络由大量的人工神经元联结进行计算.这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的.大多数情况下,人