在MATLAB软件诞生之前,大约1965年,计算机只能生成和输出二维图像,对于L-型膜结构(L-Shaped Membrane)只能生成下图左侧的二维平面效果。直到1990年,MATLAB 3.5发布,3.5版本利用了隐藏线算法(Hidden Line Algorithm),可以实现黑白网格的三维立体图像的生成。1993年,MATLAB 4进一步实现了彩色化。1995年,MATLAB 4.2利用了网格光滑化算法(Crude Shaping Algorithm)将L型网格进一步光滑处理。1995年,MATLAB 5实现了生成完全光滑和打光效果。
而Mathworks公司也将他们引以为傲的进步作为了MATLAB软件的图标!这个图标反映的正是Mathworks技术的不断迭代升级。
至于为啥是L-Shaped Membrane而不是其他呢?因为这是Mathworks创始人之一Moler的博士课题
https://www.zhihu.com/answer/1294927798
如果中国重新开发像MATLAB、solidworks这样的软件大概需要多久?
https://mp.weixin.qq.com/s/0SNlsZUO-i-wzzfSXqLF_g
Mathemetica35周年!从天才物理学家到“自大狂”,创始人Wolfram的传奇经历
https://zhuanlan.zhihu.com/p/30905298
XML和MATLAB交互的基本操作
https://mp.weixin.qq.com/s/QkICCbTp53lWOyeZx63-sw
后MATLAB时代的七种开源替代,一种堪称完美!
https://mp.weixin.qq.com/s/vV8kFF7e1uxjMR48_uRcSw
MATLAB动画没有密秘
https://mp.weixin.qq.com/s/L6GP0LiCQX0Z2lps3Y0ekQ
Matlab简史
https://www.zhihu.com/answer/1513267624
1994年,Matlab发现著名的Intel CPU浮点运算bug
GNU Octave是Matlab的一个开源实现。它拥有和后者兼容的语法,类似的IDE,并实现了大部分的基础库。
官网:
https://gnu.org/software/octave/
安装方法:
sudo apt install octave
spyder是一个Python的IDE,提供了和Matlab类似的数据可视化界面。
安装:
sudo apt install spyder
GeoGebra是一个结合“几何”、“代数”与“微积分”的动态数学软件,由佛罗里达州亚特兰大学的数学教授Markus Hohenwarter所设计。
官网:
https://www.geogebra.org/
GeoGebra官网包含了很多网友分享的几何绘图,所以常用图形就不要自己画了,找个现成的改改更合适。
安装包下载:
https://download.geogebra.org/installers/6.0
微积分的数值解很多软件都能计算,但解析解就不行了。Maxima就是这样一款Computer Algebra System的软件。
官网:
http://maxima.sourceforge.net/
boost.test是一个C++的单元测试框架。
代码示例:
https://github.com/antkillerfarm/antkillerfarm_crazy/tree/master/cpp/boost_test
要点:
测试代码无须main函数。
编译:-DBOOST_TEST_DYN_LINK
链接:-lboost_unit_test_framework
打印所有的log:
unit_test --log_level=all
参考:
https://www.ibm.com/developerworks/cn/aix/library/au-ctools1_boost/
了解Boost单元测试框架
https://www.ibm.com/developerworks/cn/aix/library/au-ctools2_cppunit/index.html
了解CppUnit
https://www.ibm.com/developerworks/cn/aix/library/au-ctools3_ccptest/
了解CppTest。上面这3篇算是比较权威的C++单元测试工具的教程了,作者都是Arpan Sen。
https://my.oschina.net/vaero/blog/227528
C++单元测试:boost.test
https://remonstrate.wordpress.com/2011/07/06/boost-%e7%9a%84-unit-test/
boost的unit test
安装:
sudo apt install libgtest-dev
代码:
https://github.com/google/googletest
gtest_filter
是一个很有用的选项。
示例:
./foo_test --gtest_filter=FooTest*.*-FooTest.Bar:FooTest2.Bar
运行所有“测试案例名称(testcase_name)”为FooTest的案例,但是除了FooTest.Bar和FooTest2.Bar。
-
表示去除,:
表示并列。
TEST(FooTest, DISABLED_DoesAbc) { ... }
去除测试用例。
参考:
https://www.ibm.com/developerworks/cn/aix/library/au-googletestingframework.html
Google C++ Testing Framework简介
https://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html
玩转Google开源C++单元测试框架Google Test系列(gtest)
gmock是google公司推出的一款开源的白盒测试工具。
测试一个模块的时候,可能涉及到和其他模块交互,可以将模块之间的接口mock起来,模拟交互过程。
比如要测试A模块,必过A模块需要调用B模块的函数。如果B模块还没有实现,此时,就可以用gmock将B模块的某些接口打桩。这样就可以让A模块的测试继续进行下去。
gmock目前是googletest的一部分,一般也与后者配合使用。
https://zhuanlan.zhihu.com/p/101906555
googletest-gmock使用示例
CTest是CMake集成的一个测试工具。
参考:
https://www.cnblogs.com/457220157-FTD/p/4139149.html
CTest
官网:
https://github.com/onqtam/doctest
mathcha是一个可视化的Latex编辑器,和其他同类产品相比,它主要聚焦公式和图表功能,其中后者基于tikz。
官网:
https://www.mathcha.io/
安装:
sudo snap install math-notebook
https://zhuanlan.zhihu.com/p/508559139
Latex简明速查手册
https://www.zhihu.com/question/40763253
如何在Word和PowerPoint中优雅地插入Latex公式?
https://mp.weixin.qq.com/s/3RtKAT3WE8P2YIZRA2dZ3A
LaTeX的历史:图灵奖得主1977年开启的计划,引发学术圈重大变革
https://mp.weixin.qq.com/s/KMWhz5_EXWoxgmHUek6zBA
不会用latex写公式?看看这个python转latex的库(python2latex)
https://www.zhihu.com/question/65508676
怎么在LaTeX中排版Python代码?
https://mp.weixin.qq.com/s/LumDQL9VKTHWK3RkOhKFcg
1行代码搞定Latex公式编写,这个4.6M的Python小插件,堪称论文必备神器(handcalcs)
https://zhuanlan.zhihu.com/p/268332132
知乎公式编辑器的高级“玩法”
https://mp.weixin.qq.com/s/E4EECj0QQ90ElfPqOL80eg
Python编辑公式竟可以如此简单(latexify_py)
https://zhuanlan.zhihu.com/p/38178015
使用VSCode编写LaTeX
https://zhuanlan.zhihu.com/p/194831235
Knuth-Plass换行算法
https://mp.weixin.qq.com/s/kGVLsqstajyrZ_cfkFegrA
Latex数学排版简洁指南
https://mp.weixin.qq.com/s/0pI0F6c-BSLiGdLetQ5qNQ
彻底弄懂浏览器缓存策略
https://mp.weixin.qq.com/s/fEAfuVzfOwKjnTB-mdS5UA
用JS写一个同Excel表现的智能填充算法
https://mp.weixin.qq.com/s/D-XvKCSUCzMGcEz_xWTwqg
现代CSS进化史
https://mp.weixin.qq.com/s/IIWgNvqp0jxcD-J_CikV8w
代码变油画,精细到毛发,这个前端小姐姐只用HTML+CSS,让美术设计也惊叹
https://www.cnblogs.com/zzd0916/p/11977995.html
浏览器工作原理与实践
https://mp.weixin.qq.com/s/MwWC0doO_sp_eRkInbE0hw
今天网站都变成灰色了,这其中是怎么实现的?
https://mp.weixin.qq.com/s/VTULhAjEUNfAph-xkkUTsg
手写一个解析器
https://mp.weixin.qq.com/s/3sYrI9kxgAYLiNT-xavRLw
“秒开”浏览器实现起来有多难?
https://mp.weixin.qq.com/s/LciDtj6YmPI7WxcCQM-lIA
前端性能分析工具利器
https://mp.weixin.qq.com/s/c4saBdDZDehokU5gJ-9fPw
JavaScript与ES的25个重要知识点
https://mp.weixin.qq.com/s/HUknNfaxNULc4Yvf5ajRBA
五分钟了解互联网Web技术发展史
https://mp.weixin.qq.com/s/4YXoSrYueQFWOC8sZH8LvQ
跨平台Web Canvas渲染引擎架构的设计与思考
https://zhuanlan.zhihu.com/p/373271928
浏览器性能优化实战
https://zhuanlan.zhihu.com/p/23016264
这么多款STL,总有一款适合你
https://mp.weixin.qq.com/s/Hpn7KqYlBKz0JdryiozqyQ
每个开发者都应该了解的一些C++特性
https://www.cnblogs.com/wuchanming/p/3913492.html
emplace_back与push_back的区别
https://zhuanlan.zhihu.com/p/82895086
当我们谈论C++时,我们在谈论什么?
https://mp.weixin.qq.com/s/pxyTlQn4wx-N_MaWZc0oAQ
漫谈C++的各种检查
https://mp.weixin.qq.com/s/LchYGGcSbIMVGxO0Uea0RA
深入C++回调
https://blog.csdn.net/hahahacff/article/details/39504699
Java中创建对象的时候代码执行顺序(这个问题C++应该也存在)
https://blog.csdn.net/msq19895070/article/details/7910969
嵌入式程序员应知道的几个基本问题
http://dev.yesky.com/393/3007393.shtml
深入理解C++中的mutable关键字
http://blog.csdn.net/apunix/archive/2008/01/14/2043945.aspx
UNREFERENCED_PARAMETER的作用
https://mp.weixin.qq.com/s/1ELGzBkIdO1xa6LZV80raQ
C++中Future和Promise的一种简单实现
您的打赏,是对我的鼓励