我是一个MATLAB爱好者,这是我对MATLAB的第三次复习。这次,我选择B站作为自己的复习平台。因为B站不能传文件,所以干脆写一个专栏。哈哈。也算是再熟悉一遍吧。
   因为MATLAB函数使用方法颇为复杂。每个函数仅写出了它的基本含义。具体细节还是要在MATLAB的帮助文档中实现。因为时间关系,没有给出使用的例子。不过,还是希望能为大家起到一个抛砖引玉的作用^_^
   没有必要一次看完哈,喜欢的话可以收藏哦。
   基本原则:
   
    - 函数的基本使用方法是函数后面一个括号,如rand(3)等。有一些有特殊的用法。 但是用括号是绝对没有错的,也有可能可以用空格完成。(这点和python不一样)
 
    - 一个数会被认为是一个1*1的矩阵。
 
    - 一个向量会被认为是一个1*n的矩阵。
 
    - 一个矩阵是MATLAB的最基本元素。
 
   
   帮助:
   
    - help:寻求MATLAB官方文档对一个函数的帮助。
 
    - doc:打开帮助浏览器。
 
    - lookfor:从帮助条目中搜索关键字。
 
    - which:定位函数和文件。
 
    - dir:列出文件夹的内容。
 
    - cd:更改当前所在的路径。
 
    - why:让MATLAB给出一些有趣的回答。
 
    - who:列出工作区中的变量。
 
    - whos:列出工作区中的变量及其大小和类型。
 
    - what:列出文件夹中的MATLAB文件。
 
    - exist:检查文件的存在情况。
 
   
   基本数字运算:
   
    - ans:上一个运行结果的默认变量名。
 
    - pi:圆周率。
 
    - eps:计算机中的最小数。
 
    - inf:无穷大。
 
    - NaN:不定值。
 
    - i或j:虚数单位。
 
    - nargin:输入的变量数目。
 
    - nargout:输出的变量数目。
 
    - realmax:MATLAB可以计算的最大的正实数。
 
    - realmin:MATLAB可以计算的最小的正实数。
 
    - int8:8位有符号整数类型。
 
    - int16:16位有符号整数类型。
 
    - int32:32位有符号整数类型。
 
    - int64:64位有符号整数类型。
 
    - uint8:8位无符号整数类型。
 
    - uint16:16位无符号整数类型。
 
    - uint32:32位无符号整数类型。
 
    - uint64:64位无符号整数类型。
 
    - single:单精度浮点数类型(32位)。
 
    - double:双精度浮点数类型(64位)。(默认类型)
 
    - round:四舍五入。
 
    - fix:向绝对值小的方向取整。
 
    - floor:往更小的数取整。
 
    - ceil:往更大的数取整。
 
    - complex:复数类型。 
 
    - real:复数的实部。
 
    - imag:复数的虚部。
 
    - abs:复数的模长。
 
    - angle:复数的幅角。
 
    - conj:复数的共轭复数。
 
   
   有关逻辑运算
   
    - true:真。
 
    - false:假。
 
    - logical:把数转换成逻辑类型。
 
    - &(and):与
 
    - |(or):或
 
    - ~(not):非
 
    - xor:异或
 
    - any:任意
 
    - all:所有
 
    - ==(eq):等于
 
    - ~=(nq):不等于
 
    - <(lt):小于
 
    - >(gt):大于
 
    - <=(le):小于等于
 
    - >=(ge):大于等于
 
   
   关于字符串的基本操作
   
    - strcmp:判断两个字符串是否相等。
 
    - strcmpi:判断两个字符串不区分大小写是否相等。
 
    - strncmp:判断两个字符串的前n个字符是否相等。
 
    - strncmpi:判断两个字符串的前n个字符不区分大小写是否相等。
 
    - findstr:从字符串中查找部分子串,返回其索引值。
 
    - strfind:从字符串中查找部分子串,返回其索引值。
 
    - strtok:查找字符串的分隔符。
 
    - strmatch:查找匹配指定的字符串。
 
    -  strrep:替换字符串。
 
   
   有关强制类型转换和进制转换
   
    - char:数字到字符串(ASCII码)。
 
    - int2str:整数到字符串(字符串的内容是数字)。
 
    - num2str:数值到字符串(字符串的内容是数字)。
 
    - mat2str:数值到字符串(字符串的内容是数字)。
 
    - dec2hex:十进制到十六进制。(字符串)
 
    - dec2bin:十进制到二进制。(字符串)
 
    - dec2base:十进制到任意进制。(字符串)
 
    - uintN:字符到数(ASCII码)。
 
    - str2num:字符串到数字(字符串的内容是数字)。
 
    - str2double:字符串到数字(字符串的内容是数字)。
 
    - hex2num:十六进制到十进制。
 
    - hex2dec:十六进制到十进制。
 
    - bin2dec:二进制到十进制。
 
    - base2dec:任意进制到十进制。
 
   
   有关矩阵的尺寸
   
    - size:求一个矩阵的尺寸。
 
    - length:求一个矩阵的最长的边。
 
    - numel:求一个矩阵有多少个元素。
 
    - ndims:求一个矩阵有多少个维度(至少为2个)。
 
   
   有关矩阵的构造和简单运算
   
    - 简单的构造方法:中括号括起来、分号换行。
 
    - 冒号表示等等差向量。
 
    - linspace:构造一个确定首项和尾项的n个数的等差向量。
 
    - logspace:构造一个确定首项和尾项的n个数的等比向量。 
 
    - rand:构造一个矩阵,每个值都是0~1均匀分布的随机数。
 
    - randn:构造一个矩阵,每一个值都是服从标准正态分布的随机数。
 
    - randi:构造一个矩阵,返回一个介于1和imax之间的伪随机整数。
 
    - zeros:构造一个全部为0的矩阵。
 
    - ones:构造一个全部为1的矩阵。
 
    - eye:构造单位矩阵(主对角线为1)。
 
    - gallery:构造测试矩阵。
 
    - hadamard:构造哈达玛矩阵。
 
    - hilb:构造希尔伯特矩阵。(行列式值非常小,高度病态矩阵)
 
    - invhilb:构造希尔伯特矩阵的逆矩阵。
 
    - rosser:构造经典对称性测试矩阵(Rosser矩阵)。 矩阵有如下的特点:有一个双精度特征值、三个几乎相等的特征值、 有异号占优特征值、有一个零特征值、一个非常小的非零特征值。
 
    - wilkinson:构造wilkinson特征值测试矩阵。
 
    - pascal:构造帕斯卡三角形(杨辉三角)。
 
    - vander:范德蒙德矩阵。
 
    - 矩阵的转置:普通转置(.')和共轭转置(')。
 
    - 水平方向的拼接:C=[A,B]。
 
    - 垂直方向的拼接:C=[A;B]。
 
    - horzcat:水平方向矩阵的拼接。
 
    - vertcat:垂直方向矩阵的拼接。
 
    - cat:不同维度矩阵的拼接。
 
    - repmat:对于现有的矩阵赋值和粘贴成一个新的矩阵。
 
    - blkdiag:以对角阵的方式重组矩阵。
 
    - 可以通过加索引的方式强行扩大矩阵的大小。
 
    - 可以通过令一行或者一列的值为[]的方法把一行或者一列删掉。
 
    - reshape:矩阵尺寸的重组。
 
    - 面对一个较大的矩阵,可以通过预分配内存的方式可以大大减少MATLAB运算的复杂度。
 
    - compan:构造一个矩阵的伴随矩阵。
 
    - diag:通过列向量构造对角矩阵,或者是根据对角矩阵来求出列向量。
 
    - randperm:随机置换一个包含从1到n之间的整数列表。
 
    - magic:构造n阶魔方矩阵。
 
    - 矩阵的加减乘除运算:乘除分为点乘、点除和乘法除法。其中点乘和点除指的是每一项与每一对应位置项的乘法和除法(类似于矩阵的加法和减法),乘和除指的是线性代数里面的乘法和除法。
 
    - filpud:上下翻转。
 
    - filplr:左右翻转。
 
    - filp:按照不同维度的翻转。
 
    - rot90:逆时针旋转90度。
 
    - sum:矩阵数组元素的累加和。
 
    - prod:矩阵数组元素的累乘积。
 
   
   寻访矩阵的元素
   
    - 双下标。从1开始,先行后列。(subscript)
 
    - 单下标(和计算机的内存相关):从上到下、从左到右的方向排列。(index)
 
    - sub2ind:双下标到单下标。
 
    - ind2sub:单下标到双下标。
 
   
   寻访矩阵中的多个元素:
   
    - A(:,j):访问二维矩阵中的第 j 列元素。
 
    - A(i,:):访问二维矩阵中的第 i 行元素。
 
    - A(:,j:k):访问二维矩阵中第 j 到第 k 列元素。
 
    - A(i:l,j:k):访问二维矩阵中从第 i 到第 l 行,第 j 到第 k 列的元素。
 
    - A(:,:):返回矩阵 A 本身。
 
    - A(:):将矩阵 A 本身的每一列都合并成一个长的列向量。
 
    - A(j:k):返回一个行向量,其中的元素为 A(:)从第j到第k个元素。
 
    - A([j1,j2,…,jn]):返回一个行向量。分别是第 j1,j2,…,jn 个元素。
 
    - A(:,[j1,j2,…,jn]):返回一个小的矩阵,每一行还是和原本的矩阵一样, 第 1,2,…,n 列分别是第 j1,j2,…,jn 列元素。
 
    - A([j1,j2,…,jn],:):返回一个小的矩阵,每一列还是和原本的矩阵一样, 第 1,2,…,n 行分别是第 j1,j2,…,jn 行元素。
 
    - A([j1,j2,…,jn],[k1,k2, …,km]):返回一个小的矩阵,返回的是第 [j1,j2,…,jn]行,第[k1,k2, …,km]列元素组成的矩阵。
 
   
   一些布尔型函数
   
    - isempty:判断一个矩阵是否空矩阵。
 
    - isscalar:判断一个矩阵是否为标量。
 
    - isvector:判断一个矩阵是否为向量。
 
    - issparse:判断一个矩阵是否为稀疏矩阵。
 
    - isa:判断一个矩阵是否为指定的数组类型。
 
    - iscell:判断一个矩阵是否为稀疏矩阵。
 
    - iscellstr:判断一个矩阵是否为指定的数组类型。
 
    - ischar:判断一个矩阵是否为指定的数据类型。
 
    - isfloat:判断输入数据是否为字符类型。
 
    - isinteger:判断输入数据是否为整数类型。
 
    - islogical:判断输入数据是否为逻辑类型。
 
    - isnumeric:判断输入数据是否为数值类型。
 
    - isreal:判断输入数据是否为实数类型。
 
    - isstruct:判断输入数据是否为结构体类型。
 
   
   关于稀疏矩阵
   
    -  有些矩阵有很多0,占用很多内存是没必要的。只需要存储非0的数据。如果有大量0的 数据,可以省去一些内存。稀疏矩阵的类型是sparse而不是matrix。
 
    - sparse:创建稀疏矩阵。
 
    - speye:创建单位稀疏矩阵。
 
    - sprand:创建与原稀疏矩阵基于相同结构的0~1均匀分布稀疏矩阵。
 
    - sprandn:创建与原稀疏矩阵具有相同结构的标准正态分布稀疏矩阵。
 
    - sprandsym:生成随机对称稀疏矩阵。
 
    - spdiags:关于对角线的稀疏矩阵。
 
    - nnz:返回一个稀疏矩阵里面的非0元素个数。(也可以是非稀疏矩阵)
 
    - nonzeros:返回稀疏矩阵中由非0元素构成的列向量。
 
    - find:返回稀疏矩阵中非零元素构成的集合。
 
    - nzmax:返回稀疏矩阵中非零元素的存储总量。(非零元素分配的存储单元数)
 
    - spalloc:建立一个全部是 0 的,大小为 m×n 的稀疏矩阵。 其中为非零元素保留的空间为 nzmax。然后逐列生成这个矩阵,用非零值代 替零。不必重复地分配存储空间。
 
    - spy:用图形化的方式显示稀疏矩阵S元素的分布情况。
 
    - squeeze:删除高维数组中大小为1的维。
 
    - shiftdim:移动高维数组的维度。
 
    - permute:根据某个顺序重新排列数组的维度。