does the matlab R2017a deploy neural network for c#(.net Assemly)

2 ビュー (過去 30 日間)
wahed fazeli
wahed fazeli 2017 年 12 月 28 日
コメント済み: Kojiro Saito 2018 年 1 月 10 日
i use matlab R2017a but when i want to deploy my code to c#(.net assembly) it has a lot of error my code is very simple but i dont know why the matlab dont compile it in c#(.net assembly) these are snapshots of error in compiling neural network.
does the c# visual studio run my code with this errors because the matlab created files specially dll file(does this dll file work in the visual studio?) this is my simple code of neural network
function neuralnetwork(x,t)
net= fitnet(10);
disp('Training fitnet');
train(net,x,t);
end
does this version just have this problem?

採用された回答

Kojiro Saito
Kojiro Saito 2017 年 12 月 30 日
編集済み: Kojiro Saito 2018 年 1 月 10 日
From R2017a, a feature was added to MATLAB Compiler to show warnings if unsupported functions are used in compiled scripts. But there's an issue in R2017a that many warnings of unsupported Fixed-Point Designer (toolbox/fixedpoint/fixedpoint) will be shown in PackagingLog.html even though those functions of Fixed Point Designer are not used in compiled MATLAB scripts. I think this issue was solved in R2017b.
So, you can ignore the warnings of "toolbox/fixedpoint/fixedpoint" in PackagingLog.html because you don't use Fixed-Point Designer functions in your neuralnetwork.m. I confirmed your script is able to compile and run as a standalone, so I think there's no issue for .NET assembly.
UPDATED:
I also tested with MATLAB R2017a and .NET (Console application) and it worked fine.
I have compiled as .NET assembly from your neuralnetwork.m, specifying appname "neuralnetwork" as the attached screenshot.
Here is a sample #C code.
Program.cs
using System;
using MathWorks.MATLAB.NET.Arrays;
using neuralnetwork;
namespace neuralnetwork
{
class neuralnetworkClass
{
static void Main(string[] args)
{
Class1 obj = null;
MWNumericArray arrayX = null;
MWNumericArray arrayT = null;
MWArray[] result = null;
int numOfOutput = 0;
try
{
// Instantiate your component class.
obj = new Class1();
// Invoke your component.
arrayX = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8 };
arrayT = new double[]{0, 0.84, 0.91, 0.14, -0.77, -0.96, -0.28, 0.66, 0.99};
result = obj.neuralnetwork(numOfOutput, arrayX, arrayT);
// print the output.
Console.WriteLine("Neural Network Done");
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
}
}
You need to do the following.
1. Add two dll files (compiled neuralnetwork.dll and $MATLAB\toolbox\dotnetbuilder\bin\win64\v4.0\MWArray.dll) to the Reference of your .NET solution file in Visual Studio.
2. Specify Platform target to 64bit in Visual Studio.
Hope this help.

その他の回答 (1 件)

wahed fazeli
wahed fazeli 2018 年 1 月 9 日
i test the compile file but it doesnt work .in your opinion do i use the matlab r2017b?
  1 件のコメント
Kojiro Saito
Kojiro Saito 2018 年 1 月 10 日
I tested with compiled .NET dll (in MATLAB R2017a) and worked. I have updated the above answer with sample C# program.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMATLAB Compiler SDK についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by