要想学好MATLAB,过好英语关!(我发表在研学论坛上的原创bbs.matwav.com)
当我发表这个帖子的时候,我已经想了以下,也不知道国内的教材的编写人员是否主要到学习者在英语上要下点工夫,所以这里的仅仅是个人的拙见,如果有不妥当的地方,请批评指正,在下感激不尽!
大家至少都是本科生,英语都学了十几年,虽然你可能不会流利地脱口而出,但是我相信你的眼力应该是相当可观的.或许大家都有疑问,除开英语学好了能进外企工作以外,好像学习起来没有什么意义.更有的时候很少接触英文,偶尔看一下.但是我要说的英语是很难的(不管你是否承认),没有几个人能真正学好,英语专业的人遇到其他专业的英语也束手无策...我想这个就是为什么非英语专业的人也要学习英文的原因吧,...
回到正题,为什么要好MATLAB也要过好英语关呢?我想有下面的理由:
1.这个优秀的软件是美国人创立的,其说明等都是以英语为基础的.当然你可以反驳说,有中文版的书籍可以借鉴,这也不错.不过,你看完一本国语的书籍以后,你对其中给出的命令记多少啊,何况很大程度上许多人只是为了钱而编写书,其中的代码说不定有许多是错误的,而且也不一定是最快最好的代码,这样来,与其说是做事不认真,不如说是对读者不负责,...看看help documentation就知道国外人做的十分到位的,即便是你看国外电器的说明也是一样的,很详尽,几乎都可以能够获得internet的支持,...
2.MATALB中的命令很多,我们无法都记忆到自己的脑子里,我们学了多少年,现在回想一下,我们学过的公式有多少,你能记忆多少啊?我想,大家中有不记得复数的/三角函数的和差化积等60多个公式的不在少数,甚至连14个基本的求导公式以及24个基本的积分公式更是全部忘却,当然你肯定具备推导的能力,但是这样却拼命地追忆去想如何推导.如果能记住,那才是最快的最为方便的.MATLAB给我们学习以很到的便利,可是都是英语的.我们记忆英语单词就比较苦恼,何况这样又不是单词的东西呢?如果你学会了英语的一些技巧,应该是可以获得比较长足的发展的...
3.在这里,我找一些例子来说明英语没有过好关,而不能轻松在MATLAB环境任意驰骋的事例:
eg1:由rciaots 提出来的问题
我是初学者...希望帮忙解一下..
不知道为什么都是Error...
>> f=@(x)(x^3.*exp(-x^2))./(2+cos(log(1+x^2)));
>> I=quad (f,0,1)
??? Error using ==> mpower
Matrix must be square.
Error in ==> @(x)(x^3.*exp(-x^2))./(2+cos(log(1+x^2)))
Error in ==> quad at 63
y = f(x, varargin{ : } ) ;
注意:
很显然,运行是出错了!但是你要知道,在什么地方,MATLAB已经给我们提示了:Error using 错误的使用,mpower是什么呢?可以猜测是矩阵的指数运算,后面有提示Matrix must be square.这里就意味着,矩阵一般的乘法与点乘的区别。如果能够明白的话,那么这个问题就迎刃而解了!不是吗,正如网友zzbei给出的答案一样。
>>f=@(x)(x.^3.*exp(-x.^2))./(2+cos(log(1+x.^2)));
>> I=quad (f,0,1)
I = 0.0458
注意"."的应用
eg2. 问题由tobeuao提出,最近在程序中经常看到这种形式的表达式,Y=[Y X];其中X,Y都是变量。这样的式子怎样解释?把X的值赋给Y?可为什么还要用[]括起来?还有一种就是[M N]=size(K);M,N是两个变量,K多为数组。希望您能帮我解答一下,这两种形式的表达式的含义,谢谢。
当然这里由积极的网友friendchj 给出解决方案:
Y=[Y X];%利用这个式子可由Y,X组成一个新的向量或矩阵
[M N]=size(K);% help size
不过我最后补充了一些如下的内容:
============================================
K是矩阵或者数组,但是size却是规模大小之意,size(K)就是指的其大小,当然是M*N了,返回到M.N了也就是多少行,多少列了.
============================================
Note that: 在我们学习MATLAB的时候,有许多都是英语,我们要注意到英语的含义,这样不仅有利于函数命令的记忆,更能对其有深刻的理解,如在图象处理工具箱中,命令是很多的,如果你不回想其英语构成的话(仅仅把它当作是一个新的单词的话),那么就很难记忆了,或者说是很难持久地记忆了,例如:
imread()这里im----image, 这样imread实际上就是image read了,这样就很容易想到,就是读取图象文件了;
还有就是im2bw()这样的,同样im也就是image的意思,但是2(Two)是什么呢?,英语发音是什么呢, 实际上就是to,这样说来,那么im2bw就是image to bw(二值图),结果就是把图象转变为二值图了;
最后举的例子就是fft2,这样的命令很多,第一个f就是fast(快速的),第二个f就是Fourier(傅立叶),t是transformation(变换),那么fft()就是指快速傅立叶变换,但是这里的2却不是to的意思,而是真正的2的意思,指2维.整个的命令就是快速2维傅立叶变换了,...
总之大家用心记忆就是了,在MATLAB中一定有它的原因,一切都不是偶然,每个命令都有其背景,一定要和英语结合起来,这样才有长足的发展和提高!!!(海岩秋沙,个人拙见,如有不当之处,谨请谅解!)
4.对高级MATLAB用户来说,更需要掌握必要的英语,因为在MATLAB中有许多比较优秀的工具箱,里面有大量的函数,这样你必须要了解函数的功能吧,这个是最基本的了。不一定,如果你能真的与英语单词结合起来,我想这样下去的,一定会有种感觉,那就是学习MATLAB很方便的。或许你早已经发现了,那就是MATLAB中的函数的名字都是很有规律的,如果结合英语来学,那么就更加简单方便了!
最后希望这个小小的帖子真的能给大家一点提示,在学习MATLAB上更上一层楼!
海岩秋沙
2007年5月24日星期四
[ 本帖最后由 海岩秋沙 于 2008-1-13 00:03 编辑 ] |