有没有人觉得matlab coder 破解的coder限制太多了

今日: 678|昨日: 766|帖子: 2749477|会员: 1177362|欢迎新会员:
祝贺以下会员升级:
(中级) | (专家) | (权威) |
我使用GUI做的一个小软件,结果已经弄好了,要求是把结果自动保存在excel中,我也做好了,保存在excel中的程序如下
d = {'序号','员工号','酸度','硬度','糖度','时间'};
xlswrite('ceshi.xls', d, 1);
小弟在信号中遇到了一个问题:在计算能量的时候,如何求一个短时傅里叶谱图(250*512的矩阵)的平方,就是求一个矩阵的平方和四次方??求大神帮忙解释哈
MATLAB 中文论坛整理的相关教学视频-全部免费下载
106 / <span title="万
请在此板块分享MATLAB相关程序、文献、经验心得等资源
请勿在此板块发帖提问,MATLAB/Simulink 问题解答请在下面相关板块发帖
7548 / <span title="万
MATLAB 下载安装运行
MATLAB 矩阵运算
MATLAB 作图
MATLAB GUI版主: , , , , ,
<span title="万 / <span title="万
Symbolic Math Toolbox (符号数学工具箱)
Partial Differential Equation Toolbox (偏微分方程工具箱)
Statistics and Machine Learning Toolbox (统计学和机器学习工具箱)
Curve Fitting Toolbox (曲线拟合工具箱)
Optimization Toolbox (优化工具箱)
Global Optimization Toolbox (全局优化工具箱)
Neural Network Toolbox (神经网络工具箱)
Model-Based Calibration Toolbox (基于模型的标定工具箱)版主: , , , ,
3万 / <span title="万
Signal Processing Toolbox(信号处理工具箱)
DSP System Toolbox(DSP系统工具箱)
Audio System Toolbox(语音系统工具箱)
Communications System Toolbox(通信系统工具箱)
Wavelet Toolbox(小波工具箱)
RF Toolbox(射频工具箱)
Antenna Toolbox(天线工具箱)
Phased Array System Toolbox(相控阵系统工具箱)
LTE System Toolbox (LTE系统工具箱)
WLAN System Toolbox(WLAN系统工具箱)版主: ,
Control System Toolbox(控制系统工具箱)
System Identification Toolbox(系统辨识工具箱)
Fuzzy Logic Toolbox(模糊逻辑工具箱)
Robust Control Toolbox(鲁棒控制工具箱)
Model Predictive Control Toolbox(模型预测控制工具箱)
Aerospace Toolbox(航空航天工具箱)
Robotics System Toolbox(机器人系统工具箱)版主: ,
6040 / 1万
Image Processing Toolbox (图像处理工具箱)
Computer Vision System Toolbox (计算机视觉工具箱)
Vision HDL Toolbox (视觉HDL工具箱)
Image Acquisition Toolbox (图像采集工具箱)
Mapping Toolbox (地图工具箱)版主: , , , ,
4万 / <span title="万
Data Acquisition Toolbox(数据采集工具箱)
Instrument Control Toolbox(仪表控制工具箱)
Image Acquisition Toolbox(图像采集工具箱)
OPC Toolbox(OPC开发工具箱)
Vehicle Network Toolbox(车载网络工具箱)版主:
5648 / 2万
Financial Toolbox(金融工具箱)
Econometrics Toolbox(计量经济学工具箱)
Datafeed Toolbox(数据输入工具箱)
Database Toolbox(数据库工具箱)
Spreadsheet Link EX (for Microsoft Excel)
Financial Instruments Toolbox(金融商品工具箱)
Trading Toolbox(交易工具箱)版主: ,
1494 / 7135
Bioinformatics Toolbox(生物信息工具箱)
SimBiology(生物学仿真)版主:
Parallel Computing Toolbox(并行计算工具箱)
MATLAB Distributed Computing Server(MATLAB分布式计算服务器)版主:
745 / 2876
前天&13:07
Database Toolbox(数据库工具箱)
MATLAB Report Generator(MATLAB报告生成)版主:
1381 / 6003
MATLAB Coder(MATLAB代码生成)
HDL Coder(HDL代码生成)
Vision HDL Toolbox (视觉HDL工具箱)
HDL Verifier(HDL代码验证)
Filter Design HDL Coder(滤波器设计HDL代码生成)
Fixed-Point Designer(定点运算工具箱)版主:
1388 / 4704
昨天&16:35
MATLAB Compiler (MATLAB编译器)
MATLAB Compiler SDK(MATLAB编译器 SDK)
Spreadsheet Link EX (for Microsoft Excel)
MATLAB Production Server版主: , ,
4935 / 1万
昨天&08:48
Simulink 基础
Simulink 基础模块版主: ,
DSP System Toolbox(DSP系统工具箱)
Audio System Toolbox(语音系统工具箱)
Communications System Toolbox(通信系统工具箱)
Phased Array System Toolbox (相控阵系统工具箱)
SimRF(RF 模块集功能)
Computer Vision System Toolbox (计算机视觉工具箱)版主:
2485 / 9305
Simulink Control Design (Simulink 控制器设计)
Simulink Design Optimization (Simulink 设计优化)
Aerospace Blockset (航空航天模块)
Robotics System Toolbox(机器人系统工具箱)版主: ,
4251 / 2万
Simscape(物理模型仿真模块组)
Simscape Multibody(机构动态仿真模块组)
Simscape Driveline(传动系统系统仿真模块组)
Simscape Fluids(液压仿真模块组)
Simscape Electronics(电子仿真模块组)
Simscape Power Systems(动力系统仿真模块组)版主: , ,
8362 / 4万
SimEvents版主:
1695 / 1万
Simulink Real-Time(实时系统)
Simulink Desktop Real-Time(桌面实时系统)版主:
518 / 1651
Simulink 3D Animation(3D动画)
Simulink Report Generator(报告生成)版主:
1042 / 3358
Simulink Verification and Validation
Simulink Design Verifier
Simulink Test
Simulink Code Inspector
HDL Verifier
Polyspace Bug Finder
Polyspace Code Prover版主: ,
昨天&12:32
Simulink Coder
Embedded Coder
Vision HDL Toolbox (视觉HDL工具箱)
Simulink PLC Coder
Fixed-Point Designer
DO Qualification Kit(for DO-178)
IEC Certification Kit(for ISO 26262 and IEC 61508)版主: ,
817 / 4064
712 / 4834
前天&11:47
Polyspace Bug Finder
Polyspace Code Prover
DO Qualification Kit (for DO-178)
IEC Certification Kit (for ISO 26262 and IEC 61508)版主:
发布最新的研讨会、培训服务、产品发布等,帮你了解最新MathWorks公司信息版主: , ,
255 / 6016
MathWorks 公司每年2次春秋竞赛
MathWorks 公司举办的其他竞赛
组委会指定网站
715 / 5370
Simulink 提供完整的设计方案
昨天&08:11
全国大学生电子设计竞赛
北京大学生电子设计竞赛
主题: 384, 帖数: 3247
主题: 2941, 帖数: 1万
主题: 148, 帖数: 7642
主题: 226, 帖数: 9492
主题: 111, 帖数: 1071
前天&23:14
主题: 3314, 帖数: 1万
主题: 823, 帖数: 9694
主题: 530, 帖数: 3533
前天&00:47
主题: 223, 帖数: 1694
昨天&21:34
主题: 660, 帖数: 2119
主题: 69, 帖数: 8255
主题: 327, 帖数: 4588
主题: 199, 帖数: 1311
昨天&11:08
主题: 178, 帖数: 730
主题: 123, 帖数: 764
主题: 150, 帖数: 1397
主题: 127, 帖数: 644
前天&15:59
主题: 602, 帖数: 3035
主题: 118, 帖数: 1363
主题: 167, 帖数: 1234
主题: 167, 帖数: 2万
主题: 18, 帖数: 78
主题: 17, 帖数: 73
主题: 27, 帖数: 227
主题: 42, 帖数: 719
主题: 16, 帖数: 962
主题: 12, 帖数: 1003
昨天&13:13
主题: 9, 帖数: 695
昨天&00:24
主题: 67, 帖数: 5330
主题: 8, 帖数: 80
主题: 9, 帖数: 23
主题: 17, 帖数: 103
昨天&13:19
主题: 22, 帖数: 159
主题: 4, 帖数: 342
主题: 7, 帖数: 42
主题: 32, 帖数: 86
主题: 26, 帖数: 857
主题: 6, 帖数: 16
主题: 9, 帖数: 43
前天&14:07
主题: 199, 帖数: 1068
主题: 14, 帖数: 255
主题: 20, 帖数: 620
主题: 4, 帖数: 12
主题: 3, 帖数: 3
主题: 5, 帖数: 6
5416 / 3万
主题: 780, 帖数: 3万
主题: 1118, 帖数: 5545
主题: 688, 帖数: 3458
主题: 3407, 帖数: 2万
主题: 1475, 帖数: 1万
主题: 6491, 帖数: 3万
- 总计 5052 人在线
- 最高记录是 5500 于 .
2000多种单位换算 万能单位换算器
站长推荐 /2
Powered byMatlab coder 怎么用_百度知道
Matlab coder 怎么用
提问者采纳
MATLAB Coder 工具是 MathWorks 公司在 2011年推出的 Matlab2011a版本中推陈出新的产品,它可以将MATLAB 函数直接生成 C 代码。主要作用体现在一下几点。1、集成: MATLAB算法变成源代码或者静态库,用于已有的C环境。2、原型:MATLAB算法作为独立可执行文件。在没有MATLAB的环境下进行使用。3、加速:是代码更高的效率执行,生成 MEX文件,使代码加速不同倍速。4、实现:转成C/C++ ,代码用于嵌入式处理器。本文主要介绍如何用MATLAB Coder将MATLAB代码转化为C/C++代码,并进行加速。
从MATLAB到C/C++步骤1、
安装matlab2011a或者更新版本,下面例子以2013版本为基础介绍;简单生成一个foo.m文件;functionc = foo(a, b)%#codegen%Thisfunction muliplies a and bc =a * b其中,%#codegen可以防止出现警告错误。 在命令窗口,输入mex -setup,选中一个存在的编译器5、在命令窗口输入coder(图形界面),回车,弹出MATLABCoder Project对话框;6、在New选项卡Name中输入一个工程名foo.prj;点击Ok,弹出MATLAB Coder MEX Function对话框;7、单击变量a,选择Define by Example…,弹出MATLAB Coder Define by Example对话框,在MATLAB Expression中输入5,点击OK;同样变量b也进行相应操作,输入6;8、 选中Build选项卡,Output type选项中我们可以选择输出类型,他可以生成MEX文件,动态链接库,静态链接库,可执行文件,为了看生成的C/C++ 代码,选择c/c++ Static Library;选哗础糕飞蕹读革嫂宫讥中Generate code only;9、 点击More settings,选择ALL Setting,找到Advanced,Language选择C++; 点击Build,进行编译;点击View report,弹出Code Generation Report对话框,MATLAB code下显示的是调用的MATLAB 函数,C code下可以看到生成的相关 .h .cpp 文件,此时,变量a、b、c会显示相应的变量信息,同时MATLAB会在目录下生成codegen文件夹,在这里面可以找到生成的 .h
.cpp文件; 利用vs2008建立一个项目程序,将生成的相关文件foo.h、foo.cpp、rtwtypes.h、foo_types.h拷到相关目录下并添加到应用程序中;编写main函数进行测试#include&foo.h&#include&iostream&#include&conio&int
main(void) {doublea = 0.0, b = 0.0, c = 0.0;cin&&a&&b;c =foo(a, b);cout&&&c= &&&c&&getch();return0;}
来自团队:
其他类似问题
为您推荐:
coder的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁为什么不少程序员认为Matlab的语言设计不优雅甚至比较丑?能否举出一些例子来说明?
比如和其他科学计算语言或者脚本语言相比
按投票排序
很多答案有些意气用事了,Matlab特别是工具箱确实强大,但有不少地方给人感觉不是那么优雅。很多功能明明很近似,接口的命名、调用方式却差距很大。产生均匀分布随机数是rand,正态分布随机数是randn,指数分布却是exprand。有的接口给人感觉跟大一新生写的作业一样,expm1,expm2,expm3到底是什么鬼。ode113,ode45,ode23,ode23s,你是老师你给这样的编程作业打几分。很多相似的接口差距却不是一般的大:zeros是生成零矩阵,zero跟线性系统有关,fzero又是方程求根。。。你能告诉我line和lines的区别吗?按理说矩阵每个元素求正弦值,因为数学里本来就有个方阵函数一说,所以sin(A.)更符合规律,但偏偏直接用sin(A)表示。那方阵函数怎么办?指数函数用expm,其它的却用funm,简直……所以不少人知道了Matlab的一个功能后,很难类推其它功能,查了一圈后发现Matlab居然也能做,而做的方式是他万万没想到的。向量化确实很强大,但是在一些表达式里,强调是针对矩阵元素对应运算的那个点号该放在简直毫无规律可言。matrix dimension not match的表达式拆成两个居然又能算出正确结果了,这是怎么回事。。。Mathematica的接口清一色都是驼峰命名法,非常一致;Matlab的却大小长短不一。。。这些问题极大的增加了学习成本,同时也降低了代码的可读性、可维护性,进而影响了工作效率。
没有一个正面回答问题的……作为一个(几乎)常年跟 Matlab 打交道,每天生产几百行 Matlab 代码的搬砖工,完全赞同 Matlab 的语法有问题这一说法,——咋地还不让吐槽了啊,吐槽了又能如何还不得继续用啊……下面细数 Matlab 语言(以及模仿者 Octave)语法的 N 宗罪:1. 坑爹的括号。首先让我们假定,看到这个答案的你已经很熟悉 Matlab 了,所以你一定知道,Matlab 的函数调用跟矩阵下标都(特么的)使用小括号来完成。当然,这个问题在有些时候的表现是有点意思的(比如 NaN/Inf 本身是个函数,但本身也是个常量),但是更多时候带来的是无尽的苦逼和别扭。这个问题上,谁再好意思说 Matlab 优雅简直是强词夺理,不服气的去看看 Mathematica 括号怎么用。具体说来,解释器遇到 foo(...) 的用法时,根本没可能知道到底是变量 foo 要索引元素呢,还是函数 foo 按照参数调用。当然,Matlab 不会让自己陷入僵局,于是——2. 蛋疼的搜索顺序Matlab 遇到符号之后,会按照一定的顺序去检索这个符号是啥,基本的几个重要位置是:当前上下文中定义的变量、当前函数内部的嵌套函数、当前脚本内部的函数和子函数、当前路径下的脚本、Matlab 搜索路径中的脚本或者内部函数……所以,上面的例子中 Matlab 按照顺序找 foo 到底是个啥,然后决定到底是索引元素,还是调用函数。实在啥都找不到,注意 Matlab 的返回信息,你就知道第一个坑到底是啥了(Undefined function or variable 'foo'.)。那么,当你一不小心定义了俩变量 foo, bar(学过计算机的你不要说你从来没用过这俩当变量),然后后面又一不小心想画一个条形图出来(help bar),——3. 无奈的“保留”名称然后你就中招了。众所周知,Matlab 自带的各种函数各种脚本非常丰富,很多名字都是常用单词,一不小心就能定义一个变量把 Matlab 自己的覆盖掉。但是坑爹的是,为毛都没有个警告!运行不过去来找,有的时候还发现不了!因为这个原因,我在 Matlab 中的循环变量,现在养成的习惯是 ii, jj 这么写(别告诉我你不知道为啥)。4. 奇葩的函数调用这个应该也算在第一个坑里面。我们知道,Matlab 的程序分成脚本文件(按脚本名称调用,无参数)、过程式函数文件(按脚本名称调用,可以有参数可以无参数),以及面向对象的方法(主要是构造函数)。可是,Matlab 的语法糖是,没参数的脚本/函数调用,可以不写括号!有参数的函数呢,还有种调用方法叫做命令形式!括号坑坑人也就算了,现在连括号都没有了!卧槽看别人代码看到一个东西叫 foobar,真心不知道这货到底是个变量呢还是个函数呢还是个脚本呢还是个啥。这位说了,不是能从编辑器里面打开选定,或者高亮提示的么?行吧你一定没见过有很多人的代码滥用一种东西的:——5. 穿越的全局变量其实呢,一旦遇到全局变量了,每种语言都是坑。所以这个也不能怪 Matlab。可是,(针对上面的主要问题)你丫加上个类似命名空间的东西能死啊!能死啊!啊!%%%%%%%%%
简单看了下,基本上有这样一些论点:我不在乎优雅与否,我只关心能否快速实现prototype优雅有x用,C优雅你用C做仿真啊....好像就这些了怎么说呢,it's toothless ╮(╯▽╰)╭Talk is cheap, show me the code.========================================================Revision========================================================1. 前缀表达式MATLAB的前缀表达式简直把人看醉了,尤其是最终兵器bsxfun函数:Numpy vs MATLAB题目出处:MATLAB codetic
k1 = reshape(0:N-1, N, 1);
k2 = reshape(0:N-1, 1, N);
k3 = reshape(0:N-1, 1, 1, N);
k4 = reshape(0:N-1, 1, 1, 1, N);
vc = bsxfun(@times, cos(pi/N * bsxfun(@times, k3+0.5, k1)), ...
cos(pi/N * bsxfun(@times, k4+0.5, k2)));
vc(id)=10*vc(id);
sum(vc(:))
运算时间:Elapsed time is 0.066098 seconds.
而numpy中缀表达式计算广播,比MATLAB高到不知道哪里去了import numpy as np
[x1,x2,x3,x4] = np.ogrid[:N,:N,:N,:N]
vc = np.cos(np.pi/N * (x3+.5) * x1) * np.cos(np.pi/N * (x4+.5) * x2)
vc[vc&0] *= 10
np.sum(vc)
运算时间:timeit t4()
10 loops, best of 3: 42.8 ms per loop
又或者是:matlab简直不堪入目PeopleForceG = sum(bsxfun(@times,(bsxfun(@times,120000 .* (-EDistance),UnitVectorN) + bsxfun(@times,240000 .* EDistance,bsxfun(@times,Dv,UnitVectorT))),Logical_EDistance)) ;
如果换成numpy则清爽得多PeopleForceG = ((-12000 * EDistance * UnitVectorN + 240000 * EDistance * (Dv * UnitVectorT)) * Logical_EDistance).sum(axis=-1)
或者一般的函数:matlabreshape(permute(reshape(Uij.', n,3,[]), [2,1,3]), 3,3,n/3,[])
我们不妨大胆假设MATLAB能够用Haskell柯里化那一套的话则代码可以变成这样:reshape 3 3 n/3 [] . permute 2 1 3 . reshape n 3 [] $ Uij.'
干净漂亮,可读性也大大提高,甚至比Numpy的类方法调用还高明。当然如果你非说你喜欢前缀表达式,我觉得这种人比较适合Scheme语言。2. 友好度 quote from 我觉得很多人是不是都受够了各种语言(C++,Python,Matlab,JS,PHP,好吧,指的基本上是所有的语言)里面的算式输入,比如说你必须写乘号,一个算式里面又乘又加又除又指数的时候你看代码难道不难受么?感受一下。。1(x+2^(3+a/d^i))/sqrt(x^(y+z)*(3+3/d))这时候你会想,如果写出来像手写那种就好了,是吧~Mma所支持的最让人喜欢的一个特性就是,公式和你手写的差不多!!没啥好说的,甩MATLAB十光年。================================================================我一点都没提MATLAB的库啊轮子什么的,题主问的可是“Matlab的语言设计不优雅甚至比较丑”,一个劲提轮子是什么鬼。。。再说我是很认可Simulink的.....就是这样。
骂来骂去骂来骂去笑看工科狗们撕逼(利益相关理科研究生)作为一个搞PLT养家糊口的,我见过的matlab代码大都丑的难以直视,这里面matlab语言本身要负一半的责任,具体的白如冰和Litux已经介绍过了,现在我们来讲另一半。程序要写的好看,有几样缺一不可:编写者合格的审美品位和追求,良好的系统设计,提供适当特性的程序语言,最后是一致性。在大部分matlab的程序中,第一条就有很大的问题:写matlab的很多不是专业的程序员员而是别的专业的来跑模拟,人家一来对程序编写的了解仅限于分支循环函数调用三板斧头,高级点的语言特性根本就不知道你让人家怎么写的漂亮,二来他们进行程序设计的过程基本就是(亲眼观察)照着数学公式和流程图一点一点填上去,完全不考虑遵循通用程序设计的基本模式(自顶向下,向上,对象,函数),大一点的东西能看就有鬼了,三来人家的追求根据很多答主的答案就是能跑,自己当时能看懂就行了,没啥好处为什么要好看?在编写者对审美既没品位又没追求,面向流程图编程毁掉了人类自二十世纪五十年代以来总结的所有软件工程和设计模式的经验,用的语言还难看,最后一千个脑洞就有一千种开凿方法(具体见 ),大家命名和定义接口都是兴之所至管他洪水滔天,你们能见到的大部分马特拉比代码要还能称得上美那才叫天理不容。不过话说回来写得丑并不是被骂的充分条件,比如我就没见过几个人骂brainfuck的,这说明如果仅仅长得难看低调点还是不至于被人扔臭鸡蛋的,比如我,既然长得不如人意,就从来不半夜出来吓人。matlab被程序员出身的集火,说明了它的丑还是对一些人产生了困扰的,比如需要看别人代码的苦逼孩子比如我。现代的编程语言相对于上古的那些在编程上体现出来的美感只是副产品,真正的提升在于代码的表达能力和可维护性。matlab由于巨量的内置特性和库在前一条上并不输阵,但是后一条,好的,或者说优秀的代码与其对立面的差距是不可以道里计的,代码可维护性的缺失会给代码的排错,审查与移植带来巨大的麻烦。具体一点,matlab很多时候完成的是一个原型,而原型通过了之后就需要程序员(职业的)去用Java,C++这种工程语言去完成产品,这时候外行们(无贬义)写的乱七八糟惨不忍睹matlab代码对于试图理解他的程序员来说就是噩梦了,于是matlab就在这个问题中被黑出了翔。大家都火大,解决方案或者建设性的意见我确实是没有,不过两边都相互体谅一下,工程师们写东西规矩一点,程序员也搞出点更好用的工具来。话说MIT拿python入门果然是有所图的咩(逃
10万行代码的c++ 还是那丑样, 但是10万行matlab我连想都不敢想, 这就是matlab为什么被程序员喷的原因。 如果说10万行少的, 可以自动换成100万行。
多用用R语言,就不觉得Matlab丑了。。我觉得非CS专业的,写代码之前都应该看一遍PEP8
看了一圈回答,挺Matlab的大概持两种态度。其一是“Simulink就是好用不服来辩”,另一种则是“我除了Matlab别的都不会你来打我呀”。前一种——是的没错Simulink真的很好用...后一种——诶你不会别的还占了理了是吗?就我个人而言,我这学期选了两门Matlab,然后觉得自己处在水深火热之中。矩阵运算啦求特征值啦确实很好用,但是读起来的观感简直是哔了狗了...用Matlab实现的东西我都不想再看第二遍。啊其实还是用python时被惯坏了。
matlab又不是为程序员设计的为什么要在意程序员的看法。。。。matlab最初的设计是为了方便计算矩阵,并不是作为一种编程语言。最最重要的,使用matlab大部分的用户都不会认为自己是程序员。很多都是现学现用,遇到特定问题,弄清楚相关的工具箱就可以了。matlab的程序的确不好看,和Python相比,程序有时候很难读懂,以前自己用matlab,现在正在学习Python,主要都是用于计算问题。举例子可以举出无数个。因为它当初毕竟不是作为一种语言设计出来的。知乎上很多都是说matlab的缺点。其实,matlab最大最大的优点就是上手快,在很短的时间内就可以解决问题,在处理数学问题上真心很强大。而且,国内的资料相当丰富,天朝又没有什么版权问题,基本都是免费使用,相关的论坛,教程也多。比如Python,它有很多优点,科学计算也很强大,但是国内相关的书籍还是很少的,大多数关于Python的书籍都是程序员用的,而不是专门用来解决计算问题。虽然库很多,但是很多毕竟是开源的,和商业的软件可靠性上还是有差距。不过Python可以做很多有意思的事情,以后要是做图形界面什么的,估计好用多了。
我只好实名赞
的答案。除了函数和小学生拼音缩写,或者是北欧人写的英文一样,数字字母结合,毫无规矩。这真是让我这种看到大写字母开头就知道是Class, 全部大写就知道是FINAL,第一个小第二个单词大的就知道是method的人,无法接受。你们比较一下吧:如果是Java,我们会有:Map&String, Integer& map = new HashMap&String, Integer&();map.containsKey()map.get()map.put()我跟你们说,java写程序就和念书写作文一样,你写多了,英文水准都会提高。。如果是Matlab呢,我们会有:mp = Hmp&St, It&mp.conky1()mp.gt()mp.pt()Mathematica, Python 等都保持了很好的命名完整和规范。而Matlab,别人写的Matlab你能看懂?这也说效率高也是醉了。另外一个坑爹之处是,我完全分不清他的row 和 col的顺序。有的函数是先row,后col(例如plot,难得啊,一个全称函数==)而有些函数则先col,后row,例如interp2 还是interp3来着(对不起我记不得这样的函数名!)matlab是这样的,他很强大,也完全可以在某个版本之后把所有的函数名都改正一下。可是。。。可是她的用户社群太烂了,拒绝重构代码,拒绝重写之前的代码,因此这条路不可能走得通。白如冰说的那些个奇葩函数,多少就是完全不懂英文和程序的人写的。当然,这群人也有一个好处,就是够狠,真的敢写,专业水平也高。。(这和用labview那种所谓数据流编程的一群人一样,那玩意。。算了不说了,都是计算机界的奇葩!)虽然matlab写原型速度快,可是很多人家的function你拿来就用,你也看不懂,乱试试能用,用对就好。这样浆糊一样的写程序,你确定你的代码能力会提高?真的是越写越懒,越写越蠢。难怪最后写了几十年matlab,结果一个好的计算机程序也无法写出来。matrix dimension not match 算是matlab最常见的error了吧。每次我反正都是通过转置,调换顺序等鸟枪法尝试,总有一个成的。matlab 的documentation字体选择的会让我近视(去对比一下人家mathematica的文档!!就算java的也比你强啊)。反正,算出来之后,我再也不会想去看我写了一坨什么翔。Matlab真的不是一个可以让人接受的程序语言。他只是一个工程师可以用的小工具罢了。这个工具主要就是算、算、算。Matlab 自己其实是用Java 等写的ui然后调用的C库,不信你让Matlab bootstrap 一下?Mathworks的程序员也不是傻子,知道自己该用什么写代码。写Matlab 的专职程序员如果有一天知道自己不能用语法规范,静态类型检查,支持exception , template , class 的计算机语言写代码,估计他们就辞职了,下一版Matlab 就再也不会出现了。楼下有人评论道出了matlab最广泛用户群的真心:说的好.对我这种非cs的编程渣,明知matlab有各种问题,但是我就是不愿意用c py etc. 原因就是matlab我实现新功能简单,看documentation就懂了拿来无脑用,其他语言都要系统学习一遍,发布的package用都不会用.系统学习的好处不言而喻,我们能在此处用汉语交流,就是系统学习的结果。正是这种良莠不齐的用户群,这种不愿意系统学习的风气,这种不规范,随性而为,造就了今天的matlab社群和函数库。请不要用这样的东西戕害尚在学习能力强盛时期的学生了。Matlab 本就是设计给不会写程序,不会数据结构和算法设计,不懂硬件体系结构的工程人员用的。一般语言都可以分析dynamic scope , static scope,但看到Matlab 我都不忍心分析下去。写Matlab 代码的时候,coder 的脑子里估计都是一团浆糊。只盯着矩阵运算看去了,实现的逻辑都异常简单,就是什么if,for,都特别费劲。都要求tab了还来一个end if end for,你以为是c里面的macro啊。更别说其他语言可以返回函数指针(高阶函数),处理异常,控制封装,以及存在各类功能强大的不同选择的IDE了。Matlab 你真是,哎。我都不好意思说你。
我觉得Matlab的官方需要负一定的责任, 比如它的帮助示例里或者source code里, 就没有按照代码规范来写,比如逗号后面不加空格, 等号两边不加空格等。这样根本就没有教编程新手应该怎么写出好看的代码。
已有帐号?
无法登录?
社交帐号登录

我要回帖

更多关于 matlab hdl coder 的文章

 

随机推荐