C#调用matlab的函数(无意中看见 给09的小...

编译环境:Microsoft Visual Studio 2008
版本 9.0.21022.8 RTM
Microsoft .NET Framework
版本 3.5
已安装的版本: Professional
Microsoft Visual Basic 2008 91986-031-5000002-60050
Microsoft Visual Basic 2008
Microsoft Visual C# 2008 91986-031-5000002-60050
Microsoft Visual C# 2008
Microsoft Visual C++ 2008 91986-031-5000002-60050
Microsoft Visual C++ 2008
Microsoft Visual Studio 2008 Tools for Office 91986-031-5000002-60050
Microsoft Visual Studio 2008 Tools for Office
Microsoft Visual Web Developer 2008 91986-031-5000002-60050
Microsoft Visual Web Developer 2008
Crystal Reports AAJ6G-K0MSA4K-680002Z
Crystal Reports Basic for Visual Studio 2008
Matlab 2008b
首先需要做的工作是matlab编译器的设置,设置方法为:在Command window中输入mbuild -setup显示如下
>> mbuild -setup
Please choose your compiler for building standalone MATLAB applications:
Would you like mbuild to locate installed compilers [y]/n? n %选择n
Select a compiler:
[1] Lcc-win32 C 2.4.1
[2] Microsoft Visual C++ 6.0
[3] Microsoft Visual C++ .NET 2003
[4] Microsoft Visual C++ 2005
[5] Microsoft Visual C++ 2005 Express Edition
[6] Microsoft Visual C++ 2008
[0] None
Compiler: 6 %选择6,其他编译器可以选相应的选项,我没有验证过The default location for Microsoft Visual C++ 2008 compilers is C:\Program Files\Microsoft Visual Studio 9.0,
but that directory does not exist _disibledevent=>
Please enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio 9.0] D:\Program Files\Microsoft Visual Studio 9.0 %选择您自己的当前安装路径Please verify your choices:
Compiler: Microsoft Visual C++ 2008
Location: D:\Program Files\Microsoft Visual Studio 9.0
Are these correct [y]/n? y %看上述信息,如果正确选择y
****************************************************************************
Warning: Applications/components generated using Microsoft Visual Studio
2008 require that the Microsoft Visual Studio 2008 run-time
libraries be available _disibledevent=>
MathWorks.MATLAB.NET.Arrays.MWArray m=10,n=4,j=7,k;
MWArray S = "XYZ";
k = eq.angle2quat((MWNumericArray)m, (MWNumericArray)n, (MWNumericArray)j,
(MWCharArray)S);
MWNumericArray temp = (MWNumericArray)k;
double[,] location = (double[,])temp.ToArray(MWArrayComponent.Real);
Console.WriteLine(location[0,0].ToString());
Console.WriteLine(location[0,1].ToString());
Console.WriteLine(k[2].ToString());
Console.WriteLine(k[3].ToString());
Console.WriteLine(k[4].ToString());
Console.ReadLine();
编译运行即可看到输出,此函数是姿态角转四元数函数,具体功能就不做说明了。这个例子输入输出参数的转换关系都有,大家自己看看就明白了
上面一部分是个例子,照样子写自己的就OK!
Tags: 

延伸阅读

最新评论

发表评论