基于.NET实现Matlab备用方案


基于.NET实现Matlab备用方案

今日圈内的朋友都在刷这样的消息:

正值哈工大百年校庆之际,哈工大、哈工程的师生收到了MATLAB软件停止服务的邮件,在与 MATLAB 开发公司 MathWorks 交涉之后,才得知因为美国政府实体名单的原因,相关授权已被中止。美国商务部宣布,将共计33家中国公司及机构等列入出口限制实体清单,其中就包括哈工大和哈工程两所院校。这次发布的清单从硬件扩展到软件层面,以后哈工大师生写论文不能再使用MATLAB处理数据了。 MATLAB是美国MathWorks在1984年推出的商用数学软件,目前世界上 180 多个国家的超过三百万工程师和科学家在使用 MATLAB 和 Simulink。经过十几年的发展,MATLAB已经超越了普通数学软件,成为理工科专业必不可少的工具。MATLAB用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。通俗点说只要是数学方面的问题都可以用它来做,所以它的应用领域非常广泛。

借助AnyCAD Rapid .NET SDK仅用2分钟,我们就可以完成一个简单的MyMatlab应用,可以实现曲面的模拟功能。具体过程如下:

1 准备工作

安装程序环境:

注意:如果没有安装VS2019,则需要安装一下最新的VC++的运行时库,下载链接如下:

1.1 创建一个控制台应用

1.2 使用nuget添加组件

使用nuget安装可以自动添加.Net程序集引用

2 开始写代码

以可视化曲面:f(x,y) = sin(x) * cos(y)


namespace MyMatlab
{
    class Program
    {
        static void Main(string[] args)
        {
            var matplot = Matplot.Create("MyMatlab 2020");

            var xRange = new PlotRange(0, 3.14f * 2, 0.1f);
            var yRange = new PlotRange(0, 3.14f * 2, 0.1f);
            matplot.AddSurface(xRange, yRange, (u, v) =>
            {
                double x = u;
                double y = v;
                double z = Math.Sin(u) * Math.Cos(v);

                return new GPnt(x, y, z);
            });

            matplot.Show(800, 600);
        }
    }
}

2.3 编译运行

完整项目工程: https://gitee.com/anycad/MyMatplot

 

2.4 测试一下

函数:f(x,y) = sin(x) + cos(y)

3 小结

诚然,实现一个像MATLAB功能一样丰富的软件并非一朝一夕可完成,但千里之行始于足下,不积小步无以至千里,秉持水滴石穿,只要功夫深铁棒磨成针的精神,实现一个功能强大的数学软件也并非不可能。

补充,最近老邹读到一段话感触很深:

备胎危机”就像一道闪电,划破了黑暗的长空,那些隐藏的卡脖子技术在短暂的光亮之中露出了狰狞的牙齿。备胎危机意识,空前地普及了人们对于“工业暗器”的认识:它不动声色地潜伏在工业领域,体量很小,但却为工业创造了巨额财富。你离不开它,你看不到它。它是最不起眼、最中性的强大工具,然而,在极端的时候它或许会成为致命的政治武器。

posted @ 2020-06-13 21:01  AnyCAD  阅读(525)  评论(0编辑  收藏  举报