购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

0.2 基础知识

(1)MATLAB是做什么的?为什么MATLAB叫作MATLAB?

MATLAB是美国MathWorks公司出品的商业数学软件,是用于算法开发、数据可视化、数据分析及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB是Matrix和Laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。之所以叫作矩阵工厂(矩阵实验室),是因为MATLAB的基本数据单位是矩阵。

(2)MathWorks公司的创始人是谁?

Cleve Moler和Jack Little是MathWorks公司的创始人。其中,Cleve Moler是MATLAB首个版本的开发者,Jack Little是信号处理工具箱和控制系统工具箱早期版本的共同开发者与首席架构师。

(3)新手如何开始学习MATLAB?

如果你的英文阅读水平还算可以,那么MATLAB官方的帮助文档将是最好且最全面的学习材料,你可以通过在MATLAB的命令窗口(Command Window)中输入“doc”调出MATLAB官方的帮助文档,也可以在MathWorks公司官方网站的文档中心查看在线的MATLAB官方帮助文档。

MATLAB技术论坛是一个不错的学习MATLAB的中文网站,本书的作者之一李洋(Faruto)是MATLAB技术论坛核心管理团队的成员之一,在这个论坛里你可以找到大量的学习资料(代码、数据、视频等)或直接提出问题同大家讨论。

当然,你也可以购买一些MATLAB相关的中外文书籍进行学习。

(4)使用MATLAB需要很强的编程能力吗?

大多数时候并不需要,因为MATLAB有很多的函数和工具箱,官方的工具箱还有数十种,第三方的工具箱不计其数且每天都在增加,你用到的一般方法和函数都可以在MATLAB的工具箱中找到。

(5)能否简单举一个MATLAB的例子?

生成100个高斯(正态)分布随机数,并对这100个数进行特征描述。MATLAB代码如下:

img

运行结果(因为是生成随机数,所以多次运行结果可能不同)如下:

img

(6)如何查看使用的MATLAB的版本信息及内存信息?

在MATLAB的命令窗口(Command Window)中输入“version”和“memory”来查看所使用的MATLAB版本信息和内存信息。运行结果(因为MATLAB版本的不同及计算机配置的不同,所以运行结果可能不同)如下:

img

(7)MATLAB支持中文吗?

支持!但在MATLAB中,有相当一部分工具箱的作者都是以英文为母语的,所以建议熟练全英文环境。

(8)MATLAB支持自动补全(Tab Completion)吗?

支持!在较新版本中,MATLAB引入了命令自动补全功能,使用Tab键能自动补全MATLAB命令或给出所有可能的补全命令列表。

(9)MATLAB有哪些常用的热键?

MATLAB除了支持常见的Windows热键(复制:Ctrl+C;剪切:Ctrl+X;粘贴:Ctrl+V等),在MATLAB文件编辑器(Editor)中,还有如下一些常见的热键。

• F5:运行当前的M文件。

• F9:运行选中的代码段。

• Ctrl+R:注释选中的代码段。

• Ctrl+T:反注释选中的代码段。

• Ctrl+I:将选中的代码段智能缩进调整。

(10)如何清除变量?

使用clear命令可以清除工作空间(Workspace)中的所有变量。清除工作空间中名字为name的变量,使用clear name命令。

(11)如何清空命令窗口(Command Window)?

使用clc命令可以清空命令窗口(Command Window)。

(12)MATLAB常用的数据类型有哪些?

MATLAB支持的基本数据类型有基本数值类型、字符串、元胞数组、结构、函数句柄、Java对象、逻辑类型等。其中基本数值类型包括双精度类型、单精度类型、整数类型等。

(13)如何查看函数的代码?

在MATLAB文件编辑器(Editor)菜单栏中可以使用File→Open命令直接打开相关M文件查看源码,也可以只用edit函数打开,如“edit mean”会直接打开求均值函数mean查看源码:

img
img

(14)在MATLAB中可以使用科学计数法吗?

可以,如下例:

img

(15)什么叫作MATLAB的当前路径(目录)、工作搜索路径(目录)?

“当前路径(目录)(Current Folder)”是指MATLAB当前所在的路径。MATLAB菜单栏下面有一个Current Folder,可以在这里进行当前所在目录的更改,如图0-1所示。

img

图0-1 MATLAB当前路径(目录)(Current Folder)更改位置

“工作搜索路径(目录)”是指在使用某一个函数的时候,MATLAB可以搜索该函数的所有目录集合。在MATLAB菜单栏File→Set Path中可以查看所有的工作搜索路径(目录)集合,如图0-2所示。

在使用某一个函数的时候,MATLAB首先会从当前目录搜索调用该函数;如果当前目录没有该函数,MATLAB就会在工作搜索目录按照从上到下的顺序搜索调用该函数;如果工作搜索目录中也没有该函数,则会给出如下的报错:

img

(16)在MATLAB中如何安装第三方的工具箱?

如果待安装的第三方的工具箱使用纯M语言编写,这种情况比较简单,工具箱下载后,只需将第三方的工具箱所在目录添加到MATLAB工作搜索目录即可。具体操作就是在MATLAB菜单栏中选择File→Set Path→Add with Subfolders命令,然后选择之前存放第三方工具箱的文件夹,单击“保存(Save)”按钮就可以了。

img

图0-2 MATLAB工作搜索路径(目录)设置

如果待安装的第三方的工具箱并不是单纯用M语言编写的,比如LibSVM工具箱中的MATLAB版本核心是使用C++代码编写的,安装这样的第三方工具箱的步骤就稍微复杂一些。下面以安装LibSVM工具箱为例简要介绍一下。

安装LibSVM工具箱是在MATLAB平台下使用LibSVM的前提。在MATLAB平台下安装LibSVM工具箱的本质其实就是将LibSVM工具箱的MATLAB版本文件svmtrain.c和svmpredict.c在MATLAB中进行编译生成 .mex文件(根据操作系统不同,32位操作系统编译后生成svmtrain.mexw32和svmpredict.mexw32,64位操作系统编译后生成svmtrain.mexw64和svmpredict.mexw64),之后就能在MATLAB中使用了。安装LibSVM工具箱主要有以下几个步骤:

Step 01 下载LibSVM工具箱并将其所在目录添加到MATLAB工作搜索目录。

可在官方网站下载最新版本的LibSVM工具箱,然后在MATLAB菜单栏中选择File→Set Path→Add with Subfolders命令,并选择之前存放LibSVM工具箱的文件夹,最后单击“保存”按钮即可。

Step 02 选择编译器。

由于LibSVM的原始版本是用C++写的,所以需要用编译器编译一下,生成一个*.mexw32或*.mexw64文件,这样就可以在MATLAB平台下使用LibSVM了。

如果编译器没有选择好,那么下一步进行make编译的时候就会出现如下报错:表示你没有选择好编译器。

img

这里需要本机事先安装一个C++编译器,然后才能进行选择。推荐使用Microsoft Visual C++ 6.0编译器或者更高版本的Visual Studio。一般MATLAB会自带一个编译器Lcc-win32 C,但在这里无法使用,因为LibSVM源代码是用C++写的,而Lcc-win32 C是一个C编译器,无法编译C++源代码。

下面看一下选择编译器的具体操作。

首先在MATLAB命令窗口(Commond Window)中输入:

img

注意mex后面要敲一个空格,然后才是 -setup。接着会出现如下类似内容:

img

这里询问是否选择本机已安装的编译器,正规地选择“y”然后指定编译器即可。根据本机安装的编译器,会出现如下类似内容:

img
img

然后选择相应的编译器并确认即可:这样就表示编译器选择成功了(此步骤中可能会出现警告,这是正常现象)。

MATLAB支持的编译器列表可以在MathWorks官方网站查看。

如果输入“mex -setup”,则会出现:

img

选择“y”后,可选择的编译器里没有已经安装的编译器,表示MATLAB可能没有识别、记录安装的编译器的名字和目录(有时候会发生这种情况),此时应该重新输入“mex -setup”,选择“n”手动进行编译器的设置:

img

这样就可以手动选择想要的编译器了:

img

这是确认步骤,如果你的编译器确实安装在MATLAB给出的这个目录里(这里是D:\Microsoft Visual Studio),选择“y”确认即可;如果不是,则说明MATLAB没有识别出安装的地方,选择“n”手动指定目录。选择n后的结果如下:

img
img

此时输入安装的编译器的完整目录即可。

Step 03 编译文件。

这一步的具体操作就是运行LibSVM工具箱MATLAB版本文件夹中的make.m文件。首先需要把MATLAB的当前目录(Current Folder)调整到LibSVM工具箱所在的文件夹,然后在MATLAB命令窗口(Commond Window)中输入“make”。

如果成功运行且没有报错,就说明LibSVM工具箱安装成功了。LibSVM工具箱中有自带的heart_scale.mat测试数据集,可以运行以下代码检查是否安装成功:

img

出现如下结果,则说明安装成功了:

img

在使用某一函数时,MATLAB首先会从当前目录搜索调用该函数。为了防止其他位置也有类似名字的make.m函数进而运行错误,这一步要把MATLAB的当前目录(Current Folder)调整到LibSVM所在的文件夹,优先运行LibSVM文件夹下的make.m文件。

make.m(LibSVM版本3.14)的文件内容如下:

img
img

安装完LibSVM工具箱后,可能会有人要用help svmtrain和help svmpredict来查看这两个函数的帮助文件,但结果是运行help svmtrain在较新版本下得到的是MATLAB自带的svmtrain函数的帮助文件,而运行help svmpredict会有如下报错:

img

因为svmtrain和svmpredict的源代码是svmtrain.c和svmpredict.c,该源代码是用C++写的,编译后生成的文件是svmtrain.mexw32和svmpredict.mexw32(或svmtrain.mexw64和svmpredict.mexw64)。编译后的 *.mexw32(或 *.mexw64)文件是加密过的,打开是乱码,没有帮助文件说明注释,想要查看svmtrain和svmpredict的源代码可以直接查看svmtrain.c和svmpredict.c。

由于较新版本的MATLAB有自带的SVM实现,其函数名也为svmtrain,文件位置在MATLAB根目录下(\toolbox\bioinfo\biolearning\svmtrain.m)。为避免MATLAB自带的svmtrain函数与LibSVM工具箱svmtrain函数调用错误,可以将MATLAB自带的svmtrain.m函数备份后改名,比如改成svmtrain_matlab.m或svmtrain.m_backup。

(17)如何恢复MATLAB的文件关联?

有时候重装系统或者其他错误操作会导致MATLAB文件关联失效,运行如下代码可以恢复MATLAB的文件关联: Wm8Byx+yuS62qeKMk91/DuefxYvqmQ0N0VBHZry87FakB5Qy5tN5u4iRdkNltEKw

img
点击中间区域
呼出菜单
上一章
目录
下一章
×