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

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

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

基于.NET实现Matlab备用方案的更多相关文章

  1. 基于Quick-cocos2d-x的资源更新方案 二

    写在前面 又是12点半了,对于一个程序员来说,这是一个黄金时间,精力旺盛,我想,是最适合整理和分享一些思路的时候了. 自从上次写了 基于Quick-cocos2d-x的资源更新方案 同样可见quick ...

  2. 基于Ruby的watir-webdriver自动化测试方案与实施(五)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(四) http://www.cnblogs.com/Javame/p/4164570.html 继续 ... ... 关于特殊控件 ...

  3. 基于Ruby的watir-webdriver自动化测试方案与实施(四)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(三) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   首先回忆 ...

  4. 基于Ruby的watir-webdriver自动化测试方案与实施(三)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   编写脚本 ...

  5. 基于Ruby的watir-webdriver自动化测试方案与实施(二)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(一) http://www.cnblogs.com/Javame/p/4159360.html 继续 ... ...   回顾 软 ...

  6. 基于Ruby的watir-webdriver自动化测试方案与实施(一)

    基于Ruby的watir-webdriver自动化测试方案与实施(五)   基于Ruby的watir-webdriver自动化测试方案与实施(四)   基于Ruby的watir-webdriver自动 ...

  7. 基于Jenkins的持续交付方案

    简介 Jenkins是开源的自动化编译.测试.部署的Web应用程序一个持续性交付应用 Jenkins的优势 1.Jenkins在国内的开发者中认可度较高,很多创业公司的自建持续交付系统的选择大部分都是 ...

  8. Upsync:微博开源基于Nginx容器动态流量管理方案

    Upsync:微博开源基于Nginx容器动态流量管理方案 https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=404151075& ...

  9. 基于ERNIELayout&pdfplumber-UIE的多方案学术论文信息抽取

    本项目链接:https://aistudio.baidu.com/aistudio/projectdetail/5196032?contributionType=1 基于ERNIELayout& ...

  10. 基于Quick-cocos2d-x的资源更新方案 一

    图片来自网络 思绪何来 昨天写了一篇关于更新方案的理论 游戏开发:通过路径搜索优先级来进行补丁升级(从端游到手游) 今天继续细化一下 由于新项目采用的是Quick-cocos2d-x,那我就直接给出我 ...

随机推荐

  1. HanLP — HMM隐马尔可夫模型 -- 维特比(Viterbi)算法 --示例代码 - Java

    Viterbi 维特比算法解决的是篱笆型的图的最短路径问题,图的节点按列组织,每列的节点数量可以不一样,每一列的节点只能和相邻列的节点相连,不能跨列相连,节点之间有着不同的距离,距离的值就不在 题目背 ...

  2. 13、SpringBoot-配置文件里密码加密

    系列导航 springBoot项目打jar包 1.springboot工程新建(单模块) 2.springboot创建多模块工程 3.springboot连接数据库 4.SpringBoot连接数据库 ...

  3. 线性代数 · 矩阵 · Matlab | 满秩分解代码实现

    背景 - 矩阵的满秩分解: 若 A 为 m×n 矩阵,rank(A) = r,则存在 F m×r.G r×n,使得 A = FG. 其中,F 列满秩,G 行满秩. 求满秩分解的方法: 得到 A 的行最 ...

  4. Logback 实现日志链路追踪

    本文为博主原创,未经允许不得转载: 在开发过程中,经常会使用log记录一下当前请求的参数,过程和结果,以便帮助定位问题.在并发量下的情况下,日志打印不会剧增,可以很快就能通过打印的日志查看执行的情况. ...

  5. spring--JDK动态代理的实现原理

    JDK 动态代理的实现原理涉及到 Java 的反射机制.它允许在运行时动态创建一个代理类,这个代理类实现了一组接口,并将所有方法调用转发到一个 InvocationHandler 实例.下面是 JDK ...

  6. c#.net 6 实现简单爬虫几行代码实现百度搜索

    使用selenium封装的简单使用工具包 Gitee:SeleniumUtil: Selenium简化工具包,包含三个主流浏览器的一些基本操作 (gitee.com) 第一步安装爬虫工具: 在程序包管 ...

  7. Java开发者的Python进修指南:JSON利器之官方json库、demjson和orjson的实用指南

    JSON JSON作为目前最流行的传输格式,在Python中也有相应的实现方式.由于JSON格式的文本可以跨平台并且简单易用,因此被广泛传播.因此,我们今天的主要讨论内容是如何熟练地应用Python的 ...

  8. [转帖]Django10——从db.sqlite3迁移到MySQL

    https://blog.csdn.net/weixin_47197906/article/details/124889477 文章目录 1.查看Django支持的数据库 2.修改数据库配置 1.查看 ...

  9. 各种数据库shell一键登录的方法

    各种数据库shell一键登录的方法 一个小场景 想通过shell 直接执行一些内容. 然后发现通过shell就可以. 所以这里总结一下 1. Oracle export ORACLE_HOME=/u0 ...

  10. [转帖]Oracle安装 - shmmax和shmall设置

    https://www.cnblogs.com/ddzj01/p/16108010.html 一.概述 在Linux上安装oracle,需要对内核参数进行调整,其中有shmmax和shmall这两个参 ...