由于工作需要使用matlab,我自己对这个语言的掌握程度也很一般,就下定决心,将《matlab实用教程》(第二版)看完了,这本书英文版已经出了第三版了。
这是一本很好的通用入门教材。并不涉及专门的应用领域:比如通信系统、信号处理、小波、图像处理、神经网络等等(这些工具箱通常都有专门的书籍讲解)。书中的例子都不是很难,大多数都是套公式,只需要初等数学的知识;对于后面的一些例子(第11章以后),需要基本的微积分以及数值分析的初步知识。
首先,这本书的翻译的名字就有问题,英文原名是《MATLAB for Engineers》,即工程师使用的matlab。而并不是所谓的实用教程。我也不理解为什么要翻译成“实用教程”。
其次,这本书很好的把握了matlab编程的特点。第一是计算为主,而不是选择、循环等程序设计流程。演示也很重要,所以画图的内容也很靠前,而将“程序设计”这一传统的编程关键内容放到了第8章。
其次,由于程序设计内容放的靠后,所以这本书的风格比较像谭浩强的c语言,例子都很短小,说明问题即可。这也就意味着你看完这本书以后一般只能达到能看懂程序的地步,而谈不上编写大型复杂的程序。当然如果你有其他语言编写程序的经验的话,这也就不成问题了,毕竟编程的基本思想都是想通的。
关于matlab的编程思想,与C语言有一个很大的不同点在于循环并不是那么常用了,主要是因为matlab对变量本身就是矩阵操作。举一个例子,就是计算一下成绩中大于90的个数。使用类似于C语言的风格,我们会这么写:
scores = [76,45,98,97];
count = 0;
k = 0;
while k < length(scores)
k = k+1;
if scores(k)>90
count = count+1;
end
end
disp(count)
但是使用matlab的观点,可以写为:
count = length(find(scores>90))
顺便说一句,find是一个很犀利的函数,可以免去很多时候的遍历向量ÿ
这是一本很好的通用入门教材。并不涉及专门的应用领域:比如通信系统、信号处理、小波、图像处理、神经网络等等(这些工具箱通常都有专门的书籍讲解)。书中的例子都不是很难,大多数都是套公式,只需要初等数学的知识;对于后面的一些例子(第11章以后),需要基本的微积分以及数值分析的初步知识。
首先,这本书的翻译的名字就有问题,英文原名是《MATLAB for Engineers》,即工程师使用的matlab。而并不是所谓的实用教程。我也不理解为什么要翻译成“实用教程”。
其次,这本书很好的把握了matlab编程的特点。第一是计算为主,而不是选择、循环等程序设计流程。演示也很重要,所以画图的内容也很靠前,而将“程序设计”这一传统的编程关键内容放到了第8章。
其次,由于程序设计内容放的靠后,所以这本书的风格比较像谭浩强的c语言,例子都很短小,说明问题即可。这也就意味着你看完这本书以后一般只能达到能看懂程序的地步,而谈不上编写大型复杂的程序。当然如果你有其他语言编写程序的经验的话,这也就不成问题了,毕竟编程的基本思想都是想通的。
关于matlab的编程思想,与C语言有一个很大的不同点在于循环并不是那么常用了,主要是因为matlab对变量本身就是矩阵操作。举一个例子,就是计算一下成绩中大于90的个数。使用类似于C语言的风格,我们会这么写:
scores = [76,45,98,97];
count = 0;
k = 0;
while k < length(scores)
k = k+1;
if scores(k)>90
count = count+1;
end
end
disp(count)
但是使用matlab的观点,可以写为:
count = length(find(scores>90))
顺便说一句,find是一个很犀利的函数,可以免去很多时候的遍历向量ÿ