由于项目需要,之前后端用MVC架构生成web api ,前端用node.js实现接口的调用。现在后端想将神经网络算法通过mvc架构调用matlab,实现算法封装成api。有点无从下手,还望有经验的前辈多多指点,菜鸟将不胜感激!!!!!!
具体说:我的问题就是如何在ASP.NET MVC web api 的控制器中添加matlab中提供的function函数,辛苦各位有经验之辈!
后端用MVC架构生成web api ?你自己臆测是这样描述的还是有人跟你说的。。看不懂你在说什么。。
routeTemplate: "api/{controller}/{id}"这不就是嘛
哦,应该是MVC架构和web api 结合使用
@菜鸟B队: 是的,Asp.Net MVC Web API框架自动生成的。你的需求:算法封装成api,我想问什么又叫算法封装成api。你的牛逼算法是不是也要通过function来让人调用进而起到作用?那就把你的算法扔到controller的function中,该给参数给参数,该给返回类型给返回类型,谈不上什么封装吧!哪里要用,调对应的url就ok。
@菜鸟B队: http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html看个例子吧!
@~扎克伯格: 恩,非常谢谢你,现在明白多了
@~扎克伯格: 我的算法要写在matlab中,您有没有推荐的文档书籍之类的可以参考呢?
@菜鸟B队: 这个没玩过。。。帮不上你了
好的,谢谢您
@菜鸟B队:不客气的,你去百度C#调用matlab函数,应该有你想要的东西
@~扎克伯格: 恩恩,好的。之前还做过点关于调用的,现在知识一杂糅就有点乱了。不过真的很谢谢你,查了几天资料没什么思路
做了个简单的测试成功了
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using test1;
using System.Web.Http.Cors;
namespace MvcDemo.Controllers
{
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class testController : ApiController
{
public double getsum (int x, int y)
{
sum lm = new sum();
MWArray a = x;
MWArray b = y;
//MWArray a = 1;
//MWArray b = 2;
MWArray c = lm.testAdd(a, b);
MWNumericArray temp = (MWNumericArray)c;
Array Output = temp.ToArray(MWArrayComponent.Real);//c#规范矩阵
double[ ,] location = (double[ ,])Output;
return location[0,0];
}
}
}
就是在controller的function中实现matlab函数的调用
这是matlab中的函数
function y=testAdd(a,b)
y=a+b;
end
生成动态链接库供C#调用即可
@菜鸟B队: 不错哦
@~扎克伯格:问题重重,还望以后多多指教