基于.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++的运行时库,下载链接如下:
- x86: vc_redist.x86.exe
- x64: vc_redist.x64.exe
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备用方案的更多相关文章
- 基于Quick-cocos2d-x的资源更新方案 二
写在前面 又是12点半了,对于一个程序员来说,这是一个黄金时间,精力旺盛,我想,是最适合整理和分享一些思路的时候了. 自从上次写了 基于Quick-cocos2d-x的资源更新方案 同样可见quick ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(五)
接着基于Ruby的watir-webdriver自动化测试方案与实施(四) http://www.cnblogs.com/Javame/p/4164570.html 继续 ... ... 关于特殊控件 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(四)
接着基于Ruby的watir-webdriver自动化测试方案与实施(三) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ... 首先回忆 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(三)
接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ... 编写脚本 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(二)
接着基于Ruby的watir-webdriver自动化测试方案与实施(一) http://www.cnblogs.com/Javame/p/4159360.html 继续 ... ... 回顾 软 ...
- 基于Ruby的watir-webdriver自动化测试方案与实施(一)
基于Ruby的watir-webdriver自动化测试方案与实施(五) 基于Ruby的watir-webdriver自动化测试方案与实施(四) 基于Ruby的watir-webdriver自动 ...
- 基于Jenkins的持续交付方案
简介 Jenkins是开源的自动化编译.测试.部署的Web应用程序一个持续性交付应用 Jenkins的优势 1.Jenkins在国内的开发者中认可度较高,很多创业公司的自建持续交付系统的选择大部分都是 ...
- Upsync:微博开源基于Nginx容器动态流量管理方案
Upsync:微博开源基于Nginx容器动态流量管理方案 https://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=404151075& ...
- 基于ERNIELayout&pdfplumber-UIE的多方案学术论文信息抽取
本项目链接:https://aistudio.baidu.com/aistudio/projectdetail/5196032?contributionType=1 基于ERNIELayout& ...
- 基于Quick-cocos2d-x的资源更新方案 一
图片来自网络 思绪何来 昨天写了一篇关于更新方案的理论 游戏开发:通过路径搜索优先级来进行补丁升级(从端游到手游) 今天继续细化一下 由于新项目采用的是Quick-cocos2d-x,那我就直接给出我 ...
随机推荐
- Codeforces Round #664 题解(A ~ C)
1395A - Boboniu Likes to Color Balls 如果在r,b,g,w中小于或等于一个奇数,则可以将其定为回文. 否则,请进行一次操作(如果可以),然后检查上述情况. 进行多次 ...
- 【调试】netconsole的使用
开发环境 客户端 开发板:FireFly-RK3399 Linux 4.4 IP:192.168.137.110 服务端 VMware Workstation Pro16,ubuntu 18.04 I ...
- C#将汉字转换为拼音
首先上效果图 方法调用 private void txt_Chinese_TextChanged(object sender, EventArgs e) { txt_PinYIn.Text = //调 ...
- 数字IC设计全流程介绍
数字IC设计全流程设计 掌握数字集成电路设计的流程 数字设计流程中每个阶段主要做哪些工作? 数字设计流程中每个阶段使用的主要EDA工具? 数字电路常用软件公司Mentor(questasim),Syn ...
- C++开发PHP扩展
前端时间用C开发PHP扩展,用C实现字符串和简单的cache不友好,因而有了用C++开发的想法. 相关环境初始化配置准备 1.用php源码提供的脚手架生成扩展名 php ext/ext_skel.ph ...
- [转帖]TIDB - 使用BR工具进行数据热备份与恢复
一.BR工具 BR 全称为 Backup & Restore,是 TiDB 分布式备份恢复的命令行工具,用于对 TiDB 集群进行数据备份和恢复.BR 只支持在 TiDB v3.1 及以上版本 ...
- [转帖]wmic命令介绍
https://www.jianshu.com/p/3e1a5a8fa23b How to Get Your System Serial Number PS C:\windows\system32&g ...
- [转帖]xfs_repair命令详解
https://bbs.qunyingkeji.com/2052/ 1.现状 目前网上出现大量的主机输入输出错误,原因是由于主机文件系统损坏.一线人员大部分采用的是umont 和 mount的方式恢复 ...
- [转帖]iptables开放指定端口
https://www.jianshu.com/p/5b44dd20484c 由于业务的需要, MySQL,Redis,mongodb等应用的端口需要我们手动操作开启 下面以 MySQL 为例,开启 ...
- [转帖] 使用uniq命令求并集交集差集
原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. uniq# uniq是linux上非常有用的一个命令,从字面意思上就能看出来,它可以用来去重. 但使用uniq的前提 ...