├── .gitignore ├── 2.1.md ├── 2.2.md ├── 2.3.md ├── 2.4.md ├── 3.1.md ├── 3.2.md ├── 3.3.md ├── 3.4.md ├── 6.1.md ├── 6.5.md ├── 6.6.md ├── README.md ├── SUMMARY.md └── matlab-r2016b简介.md /.gitignore: -------------------------------------------------------------------------------- 1 | .gitignore 2 | *.html 3 | *.json 4 | *.js 5 | *.css 6 | *.otf 7 | *.eot 8 | *.svg 9 | *.ttf 10 | *.woff 11 | *.woff2 12 | *.png 13 | *.ico 14 | *.txt 15 | _book 16 | -------------------------------------------------------------------------------- /2.1.md: -------------------------------------------------------------------------------- 1 | # 简单计算 2 | 3 | * 直接输入法 4 | ``` 5 | >>0.5*pi*5^2*10 6 | ans= 7 | 392.6991 8 | ``` 9 | * 存储变量法 10 | 11 | ``` 12 | >>s=0.5*pi*5^2 13 | s= 14 | 39.2699 15 | >>v=s*10 16 | v= 17 | 392.6991 18 | ``` 19 | 20 | # 常用数学函数 21 | ### 1. MATLAB指数函数和对数函数 22 | | 函数名 | 描述 | 23 | | :---: | :---: | 24 | | ^ | 乘方 | 25 | | exp | 求幂(以e为底) | 26 | | expm1 | 指数-1,即exp(x)-1 | 27 | | log | 自然对数,以e为底 | 28 | | log10 | | 29 | | log1p | 求x+1的自然对数 | 30 | | log2 | | 31 | | nthroot | 返回实数的n次根 | 32 | | pow2 | | 33 | | sqrt | | 34 | | nextpow2 | 求最小的的p,是的2^p不小于给定的n | 35 | 36 | ### 2. MATLAB取整和求余函数 37 | | 函数名 | 描述 | 38 | | :---: | :---: | 39 | | fix | 取整 | 40 | | floor | 下取整 | 41 | | ceil | 上取整 | 42 | | round | 四舍五入 | 43 | | mod | 求模或者有符号取余 | 44 | | rem | 求除法的余数 | 45 | | sign | 符号函数 | 46 | 47 | ### 3. MATLAB数理函数 48 | | 函数名 | 描述 | 49 | | :---: | :---: | 50 | | factor | factor(n) 返回n的所有素因子 | 51 | | factorial | 阶乘 | 52 | | gcd | 最大公约数 | 53 | | isprime | 判断是否为素数 | 54 | | lcm | 最小公倍数 | 55 | | nchoosek | 组合数 | 56 | | perms | 所有排列 | 57 | | primes | 生成素数列表 | 58 | | rat,rats | 进行分数估计 | 59 | 60 | # MATLAB中的数学运算符 61 | 62 | ### 运算符号及功能(除简单的+,-,*,/之外) 63 | | 符号 | 功能 | 备注 | 64 | | :---: | :---: | :---: | 65 | | .* | 数组乘法 | 对应元素相乘即可 | 66 | | ./ | 数组除法(右除) | 67 | | \ | 左除 | 68 | | .\ | 数组除法(右除) | 69 | | ^ | 幂方 | 70 | | .^ | 数组幂方 | 对应元素取幂即可 | 71 | | ' | 矩阵共轭转置 | 72 | | .' | 矩阵转置 | 73 | | bitxor(m,n) | 异或 | 相当于C语言中的m^n,属于算术运算符,而xor()函数属于逻辑类的 | 74 | 75 | #### 举例 76 | ``` 77 | a\b=b/a 78 | 79 | >> A=magic(3) 80 | A= 8 1 6 81 | 3 5 7 82 | 4 9 2 83 | >> B=round(rand(3)*10) 84 | B= 8 9 3 85 | 9 6 5 86 | 1 1 10 87 | >> C1=A*B 88 | C1= 79 84 89 89 | 76 64 104 90 | 115 92 77 91 | >> C2=A.*B 92 | C2=64 9 18 93 | 27 30 35 94 | 4 9 20 95 | ``` 96 | C=A^2即为C=A*A,而C=A.^2为A中的每个元素都^2 97 | 98 | # MATLAB中的标点符号 99 | | 标点符号 | 定义 | 100 | | :---: | :---: | 101 | | 分号(;) | 数组行分隔符;取消运行显示 | 102 | | 逗号(,) | 数组行分隔符;函数参数分隔符 | 103 | | 冒号(:) | 多用在数组中,如生成等差数列等 | 104 | | 点(.) | 小数点,访问结构体成员 | 105 | | 省略号(...) | 续行符 | 106 | | 引号('') | 定义字符串 | 107 | | 圆括号(()) | 函数调用,数组索引 | 108 | | 方括号([]) | 定义矩阵 | 109 | | 花括号({}) | 定义单元数组 | 110 | | 百分号(%) | 注释 | 111 | | 感叹号(!) | 调用操作系统运算 | -------------------------------------------------------------------------------- /2.2.md: -------------------------------------------------------------------------------- 1 | # 常用的操作命令和快捷键 2 | ### 常见操作命令 3 | | 命令 | 功能 | 4 | | :---: | :---: | 5 | | cd | 显示或改变工作目录 | 6 | | clc | 清空命令窗口 | 7 | | clear | 清除工作区的变量 | 8 | | clf | 清除图像窗口 | 9 | | diary | 日志文件命令 | 10 | | dir | 显示当前目录下的文件 | 11 | | disp | 显示变量或者文字的内容 | 12 | | echo | 命令窗口信息显示开关 | 13 | | hold | 图形保持命令 | 14 | | load | 加载指定文件中的变量 | 15 | | pack | 整理内存碎片 | 16 | | path | 显示搜索目录 | 17 | | quit | 退出MATLAB | 18 | | save | 保持内存变量或者工作区变量 | 19 | | type | 显示文件内容 | -------------------------------------------------------------------------------- /2.3.md: -------------------------------------------------------------------------------- 1 | # MATLAB的数据类型 2 | ## 整数 3 | ### MATLAB中的整数 4 | | 数据类型 | 描述 | 5 | | :---: | :---: | 6 | | uint8 | 8位无符号整数,范围为0~28-1 | 7 | | int8 | 8位有符号整数,范围为-27~27-1 | 8 | | uint16 | 16位无符号整数,范围为0~216-1 | 9 | | int16 | 16位有符号整数,范围为-215~215-1 | 10 | | uint32 | 32位无符号整数,范围为0~232-1 | 11 | | int32 | 32位有符号整数,范围为-231~231-1 | 12 | | uint64 | 64位无符号整数,范围为0~264-1 | 13 | | int64 | 64位有符号整数,范围为-263~263-1 | 14 | 15 | 上述数据类型除了范围不同之外,皆具有相同的性质。
16 | 由于MATLAB默认的数据类型为双精度类型,因此在定义整数变量时,要指定类型,如: 17 | ``` 18 | >> x=int8(50) 19 | x= 20 | 50 21 | >> class(x) 22 | ans= 23 | int8 24 | >> y=50 25 | y= 26 | 50 27 | >> class(y) 28 | ans= 29 | double 30 | ``` 31 | 在MATLAB中不允许进行不同整数类型之间的运算,否则会报错。
32 | MATLAB处理溢出问题的方式为:如果溢出,则计算结果为上限或者下限: 33 | ``` 34 | >> x=int8(100); 35 | >> y=int8(99); 36 | >> z=x+y 37 | z= 38 | 127 39 | ``` 40 | ## MATLAB中的浮点数 41 | 可以通过realmin('single'),realmax('single'),eps('single')来查看单精度数据类型的最值和精度。双精度则利用'double'查看。 42 | 43 | ## MATLAB中的复数 44 | 在MATLAB中用i或者j来表示虚部,可以通过6+7i这样直接创建一个复数,也可用complex()函数来创建:
45 | * c=complex(a,b): 返回复数c,实部为a,虚部为b 46 | * c=complex(a): 返回复数c,实部为a,虚部为0 47 | 48 | ## 逻辑变量 49 | ### 逻辑数组的创建 50 | 1. 51 | ``` 52 | >> x=[true,true,false,true] 53 | x= 54 | 1 1 0 1 55 | >> class(x) 56 | ans= 57 | logical 58 | ``` 59 | 2. 60 | ``` 61 | >> [30 40 50 60 70]>40 62 | ans = 63 | 0 0 1 1 1 64 | ``` 65 | MATLAB中返回逻辑值的函数和操作符如下表所示 66 | 67 | | 函数 | 说明 | 68 | | :---: | :---: | 69 | | true, false | 将输入参数转化为逻辑值 | 70 | | logical | 将数值转化为逻辑值 | 71 | | &, \|, ~, xor, any, all | 逻辑操作符 | 72 | | &&, \|\| | '并'和'与'的简写方式 | 73 | | ==, ~=,<,>,<=,>= | 关系运算符 | 74 | | 所有的is*类型的函数,cellfun | 判断函数 | 75 | | strcmp,strncmp,strcmpi,strncmpi | 字符串函数 | 76 | 77 | 对于大型的逻辑数组,其中元素1很少的话,可以采用稀疏矩阵的方式进行储存和计算。如: 78 | ``` 79 | >> x=sparse(magic(20)>395) 80 | x= 81 | (1,1) 1 82 | (1,4) 1 83 | (1,5) 1 84 | (20,18) 1 85 | (20,19) 1 86 | ``` 87 | ### 逻辑数组的应用 88 | 在MATLAB中支持通过一个数组对另一个数组进行索引,如: 89 | ``` 90 | A=5:5:50 91 | A= 92 | 5 10 15 20 25 30 35 40 45 50 93 | >> B=[1 3 6 7 10]; 94 | >> A(B) 95 | ans= 96 | 5 15 30 35 50 97 | ``` 98 | 这样就可以通过数组B对数组A的第1,3,6,7,10个元素进行访问了。另外,MATLAB允许以逻辑数组作为数组索引,对数组元素进行访问。如: 99 | ``` 100 | >> A=rand(5); 101 | >> B=A>0.5; 102 | >> A(B)=0 103 | A= 104 | 0 0.09 0.15 0.14 0 105 | 0 0.27 0 0.42 0.03 106 | 0.12 0 0 0 0 107 | 0 0 0.48 0 0 108 | 0 0 0 0 0 109 | ``` 110 | ### 逻辑数组的判断 111 | MATLAB中提供了一组函数用于判断数组是否为逻辑数组,如下表2-13所示
112 | **MATLAB中用于判断是否为逻辑数组的方法** 113 | 114 | | 函数 | 功能 | 115 | | :---: | :---: | 116 | | whos(x) | 显示数组x的元素值及数据类型 | 117 | | islogical(x) | 判断数组x是否为逻辑数据,若是返回真 | 118 | | isa(x,'logical') | 判断数组x是否为逻辑数据,若是返回真 | 119 | | class(x) | 返回x的数据类型 | 120 | | cellfun('islogical',x) | 判断单元数组的每个单元是否为逻辑值 | 121 | 122 | ## 各种数据类型之间的转换 123 | > (1) datatype(*variable*),其中datatype为目标数据类型,*variable*为待转换的变量
124 | (2) cast(x,'type'),将x的类型转换为'type'指定的类型。
125 | 126 | ## 数据类型操作函数 127 | **MATLAB中数据类型相关函数(*除去一些简单的single,double,int8等*)** 128 | 129 | | 函数 | 描述 | 130 | | :---: | :---: | 131 | | isnumeric | 判断是否为整数或者浮点数 | 132 | | isinteger | 判断是否为整数 | 133 | | isfloat | 判断是否为浮点数 | 134 | | isa(x,'type') | 判断是否为'type'指定类型 | 135 | | cast(x,'type') | 强转 | 136 | | *min('type'),\*max('type') | 返回指定类型的最值 | 137 | | eps('type'),eps('x') | 返回对应的精度 | 138 | 139 | *其中'type'包括'numeric','integer','float'和所有数据类型* 140 | 141 | ## 变量 142 | 命名规则:
143 | (1) 变量名区分大小写;
144 | (2) 长度不超过63个字符,超过部分将会被忽略;
145 | (3) 必须以字母开始,其后可以为字母,数字或下划线。
146 | 用户可以利用**iskeyword**命令查看系统的预定义关键字 -------------------------------------------------------------------------------- /2.4.md: -------------------------------------------------------------------------------- 1 | # MATLAB的运算符 2 | ## 关系运算符 3 | 4 | MATLAB中的关系运算符和C/C++一样,不过其中不等于用~=表示。 5 | 6 | ## 逻辑运算符 7 | 8 | | 运算符 | 描述 | 9 | | :---: | :---: | 10 | | & | 与 | 11 | | && | 与 | 12 | | \| | 或 | 13 | | \|\| | 或 | 14 | | ~ | 非 | 15 | 16 | 与C语言相同,&&和\|\|运算符有短路现象。 17 | 18 | ## 运算符的优先级 19 | 优先级从高到低的顺序排列为下表: 20 | 21 | | 序号 | 运算符 | 22 | | :---: | :---: | 23 | | 1 | () | 24 | | 2 | 转置(.'), 共轭转置('), 乘方(.^), 矩阵乘方(^) | 25 | | 3 | 标量加法(+)、减法(-), 取反(~) | 26 | | 4 | 乘法(.\*), 矩阵乘法(\*), 右除(./), 左除(.\\), 矩阵右除(/), 矩阵左除(\\), | 27 | | 5 | 加法(+)、减法(-), 逻辑非(~) | 28 | | 6 | 冒号运算符(:) | 29 | | 7 | 大于小于等关系运算符 | 30 | | 8 | 数组逻辑与(&) | 31 | | 9 | 数组逻辑与(\|) | 32 | | 10 | 逻辑与(&&) | 33 | | 11 | 逻辑或(\|\|) | 34 | 35 | -------------------------------------------------------------------------------- /3.1.md: -------------------------------------------------------------------------------- 1 | # MATLAB数组 2 | ## 按照元素个数和排列方式分类 3 | 1. 没有元素的空数组 4 | 2. 只有一个元素的标量,实际上是一行一列的数组 5 | 3. 只有一行或者一列的向量,分别叫做行向量或者列向量,统称为一维数组 6 | 4. 普通的二维数组 7 | 5. 多维数组 8 | 9 | **size()函数** 10 | * 如果按照只有一个返回值的形式调用,如sz=size(A),将会返回一个n维向量,其中每一个数表示A的每一维的大小 11 | * 如果按照只有多个返回值的形式调用,如[row,col]=size(A),每一个数表示A的每一维的大小。为避免出错,给的个数应当和A的维数相同。
12 | 13 | **length()函数**
14 | length()返回数组的最大维值。 15 | ## 按照数组的存储方式分类 16 | 可分为两类: 17 | * 普通数组 18 | * 稀疏数组 -------------------------------------------------------------------------------- /3.2.md: -------------------------------------------------------------------------------- 1 | # 创建数组 2 | 可以通过直接输入数值创建,也可以利用内置函数来创建一些特殊的数组。如:
3 | * 使用";"或者另起一行来表明一行的结束,如A=[2,5,7; 1,3,43]。 4 | * 函数zeros(m,n)与ones(m,n) 5 | * rand(m,n)与randn(m,n)分别产生取值为0~1的随机数的数组 6 | * diag():diag(A),如果A是二维数组,则返回其对角线上的元素形成的向量;如果A是一个向量,则以A为对角线形成一个方阵,其他元素为0. 7 | * magic(m),返回m*m的方阵,其元素为1~m2,并且行、列、对角线之和相等。 8 | 9 | ``` 10 | >> A=[2,5,7;1,3,42] 11 | A= 12 | 2 5 7 13 | 1 3 42 14 | >> z=zeros(3,2) 15 | z= 16 | 0 0 17 | 0 0 18 | 0 0 19 | >> [z ones(3,4)] %数组拼接 20 | ans= 21 | 0 0 1 1 1 1 22 | 0 0 1 1 1 1 23 | 0 0 1 1 1 1 24 | >> diag(A) 25 | ans= 26 | 2 27 | 3 28 | >> diag(diag(A)) 29 | ans= 30 | 2 0 31 | 0 3 32 | ``` -------------------------------------------------------------------------------- /3.3.md: -------------------------------------------------------------------------------- 1 | # 数组操作 2 | ## 获取数组中的元素 3 | A(行号,列号)来访问,下标从1开始
4 | 如果在超出数组范围的位置写入,MATLAB将会自动对数组进行扩充,中间位置填充0 5 | 6 | ## 各类数组操作 7 | ### 1.数组算术操作 8 | 如果对数组的单个元素进行操作的话,+和-都可以正常进行,而乘,除,乘方都有加".",即.* ./ .^ 9 | 10 | ``` 11 | >> A=[2 5 7 12 | 1 3 2] 13 | A= 14 | 2 5 7 15 | 1 3 2 16 | >> A+5 17 | ans= 18 | 7 10 12 19 | 6 8 7 20 | >> B=ones(2,3) 21 | B= 22 | 1 1 1 23 | 1 1 1 24 | >> B=B*2 25 | B= 26 | 2 2 2 27 | 2 2 2 28 | >> A.*B 29 | ans= 30 | 4 10 14 31 | 2 6 4 32 | >> A*B 33 | Error using * 34 | % 维数匹配 35 | ``` 36 | 37 | ### 2.数组逻辑运算 38 | 39 | ``` 40 | >> A=[2 5;1 3] 41 | A= 42 | 2 5 43 | 1 3 44 | >> B=[0 6;3 2]; 45 | >> A>=4 46 | ans= 47 | 0 1 48 | 0 0 49 | >> A>=B 50 | ans= 51 | 1 0 52 | 0 1 53 | >> C=[1 2 3 4]; 54 | >> A>C 55 | Error using > 56 | ``` 57 | 58 | ### 3.使用库函数 59 | 60 | ### 4.数组连接 61 | MATLAB运行进行如下的数组连接:
62 | * 水平方向连接,要求每一分量具有相同的列数:
63 | A=[B C D.. X Y Z] 64 | * 垂直方向连接,要求每一分量具有相同的列数:
65 | A=[B;C;D;.. X;Y;Z] 66 | 67 | ### 5.数组切片 68 | 将数组中的一部分移入另一数组中的语句一般如下:
69 | **B(\,\)=A(\,\)**
70 | 每一个\为一个索引向量。使用规则如下:
71 | * 每一个切片数组的每一维数必须相等,或者A中的切片大小为1*1 72 | * 如果执行之前B不存在的话,其他值被赋值为0;如果存在的话,则其他值保持不变。 73 | 74 | ### 6.数组重排 75 | 76 | 使用reshape\(A,rows,cols,..)来将A数组重新排列,但是一定要保证前后数组中元素个数相同,不然会报错。 77 | 78 | ### 7.线性化数组 79 | MATLAB中的二维数组,是以列优先展开为一维序列的,如: 80 | ``` 81 | >> A=[2 5 7 3 82 | 8 0 9 42 83 | 1 3 4 2]; 84 | >> A(11) 85 | ans= 86 | 42 87 | ``` -------------------------------------------------------------------------------- /3.4.md: -------------------------------------------------------------------------------- 1 | # 向量 2 | ## 创建向量 3 | 常数创建 4 | * 直接输入常数,如A=[1,2,3],其中逗号是可选的 5 | * 使用冒号来输入某个范围的值,如B=1:3:20,第一个为起始值,第二个为增量,缺省为1,第三个为结束值,所涉及区间为闭区间 6 | * 适应linspace()函数,如C=linspace(0,20,11),0为下限,20为上限,11为取值个数,所涉及区间为闭区间 7 | * 使用zeros(1,n),ones(1,n),rand(1,n)以及randn(1,n)(正态分布随机数)等函数 8 | 9 | ## 向量索引 10 | 向量的索引和数组的索引相同,可以使用**数值索引**和**逻辑索引**两种。 11 | 12 | ## 缩短向量 13 | 采用[]的方式来实现,如: 14 | ``` 15 | >> A=[2 5 7 1 42] 16 | A= 17 | 2 5 7 1 42 18 | >> A(3)=[] 19 | A= 20 | 2 5 1 42 21 | ``` 22 | 23 | ## 向量操作 24 | ### 1.算术操作 25 | 与数组类似 26 | ### 2.逻辑操作 27 | 与数组类似 28 | 29 | 如果想要得到对应逻辑向量中元素为真的向量元素的索引值,则使用find()函数。它需要输入一个逻辑数组,然后输出取真值的元素所对应位置的向量。如: 30 | ``` 31 | >> A=[2 5 7 1 3]; 32 | >> A>4 33 | ans= 34 | 0 1 1 0 0 35 | >> find(A>4) 36 | ans= 37 | 2 3 38 | ``` 39 | 40 | 可以使用一元操作符~来对逻辑数组求非: 41 | ``` 42 | >> na=~[true true false true] 43 | na= 44 | 0 0 1 0 45 | ``` 46 | 47 | ### 3.应用库函数 48 | 49 | * sum(v)与mean(v):输入一个向量,返回该向量所有元素的和与平均值。 50 | * min(v)与max(v):返回两个相想,分别代表最值和最值所在位置 51 | ``` 52 | >> [value where]=max([2 7 42 9 -4]) 53 | value= 54 | 42 55 | where= 56 | 3 57 | ``` 58 | 59 | * round(v),ceil(v),floor(v)与fix(v):取整函数,原则分别为:舍入,向上舍入,向下舍入以及向0舍入。 60 | 61 | ### 4.连接 62 | 与数组类似 63 | 64 | ### 5.切片 65 | 与数组类似 66 | 67 | 在匿名索引向量时,同时具有以下特点:
68 | (1)关键词**end**被定义为向量的长度。
69 | (2)操作符:为1:end的缩写。 70 | -------------------------------------------------------------------------------- /6.1.md: -------------------------------------------------------------------------------- 1 | # 脚本文件和编辑器 2 | ## 1.创建和使用脚本文件 3 | 直接创建脚本并命名为.m文件,使用的时候直接在命令行窗口输入文件名就可以直接执行。 4 | 5 | ## 2.有效使用脚本文件 6 | (1) 使用脚本文件名必须满足MATLAB的变量命名约定:以字母打头,最多可以有31个字符。
7 | (2) 在命令窗口中输入变量名会使MATLAB显示该变量的值。因此,脚本文件的名字和变量名称不要相同。
8 | (3) 为脚本赋予的名称要与MATLAB命令或者函数的名称都不相同。用户可以用**exist**命令检查每一个命令、函数或文件名是否已经存在。 9 | * 检查变量,exist('variable_name'); 10 | * 检查文件名,exist('file_name.m','file'); 11 | * 检查内置函数,exist('function_name','builtin');
12 | 13 | (4) 在交互模式中,脚步文件所创建的所有变量都是全局变量,这意味着可以在基本工作空间中使用它们的值。
14 | (5) 函数文件所创建的变量时该函数的局部变量,这与脚步文件不同。因此,如果用户不必访问脚步文件的所有变量,就需要考虑使用函数文件。 15 | (6) 在不使用文件编辑器打开M文件的情况下,用户可以使用type命令查看文件的内容。例如,要查看文件example1,命令就是type example1. 16 | 17 | ## 3.控制输入输出 18 | **相关命令** 19 | 20 | | 命令 | 说明 | 21 | | :---: | :---: | 22 | | disp(A) | 显示数组A或者变量A的内容 | 23 | | disp('text') | 显示单引号内部的文本串 | 24 | | format | 控制屏幕输出的显示格式 | 25 | | fprintf | 格式化地写入屏幕或文件中 | 26 | | x=input('text') | 显示单引号中的文本,等待用户从键盘输入,并将输入值保存在x中 | 27 | | x=input('text','s') | 显示单引号中的文本,等待用户从键盘输入,并将输入值作为字符串存在x中 | 28 | | k=menu('title','option1','option2',..) | 显示菜单,名称为变量title的内容,并且菜单的选项为'option1','option2',... | -------------------------------------------------------------------------------- /6.5.md: -------------------------------------------------------------------------------- 1 | # 条件语句 2 | ## 1.if语句 3 | if语句的基本形式为: 4 | 5 | ``` 6 | if 逻辑表达式 7 | 语句 8 | end 9 | ``` 10 | 11 | 每条if语句必须伴随一条end语句。end语句标志着逻辑表达式为true时所要执行语句的结束。
12 | if和逻辑表达之间有个空格.
13 | ``` 14 | if x>=0 15 | y=sqrt(x) 16 | end 17 | ``` 18 | 也可以写在一行里: 19 | ``` 20 | if x>=0,y=sqrt(x),end 21 | ``` 22 | if还可以嵌套,如下所示: 23 | ``` 24 | if 逻辑表达式1 25 | 语句组1 26 | if 逻辑表达式2 27 | 语句组2 28 | end 29 | end 30 | ``` 31 | 32 | ## 2.else语句与else if语句 33 | ### 1.else语句 34 | 使用else语句的基本结构为: 35 | 36 | ``` 37 | if 逻辑表达式 38 | 语句组1 39 | else 40 | 语句组2 41 | end 42 | ``` 43 | 44 | ### 2.elseif语句 45 | 46 | 使用elseif语句的基本结构为: 47 | 48 | ``` 49 | if 逻辑表达式1 50 | 语句组1 51 | elseif 逻辑表达式2 52 | 语句组2 53 | else 54 | 语句组3 55 | end 56 | ``` 57 | 如果不需要的话,也可以省略else和elseif。但是,如果要使用的话,必须将else语句放在elseif语句的后面,用于处理未加说明的所有条件。
58 | elseif不需要单独的end语句。 -------------------------------------------------------------------------------- /6.6.md: -------------------------------------------------------------------------------- 1 | # 循环 2 | ## 1.for循环 3 | for循环的经典结构如下所示: 4 | ``` 5 | for 循环变量=start:step:end 6 | 语句 7 | end 8 | ``` 9 | for的行未不需要分号。for和循环变量之间有个空格。
10 | 还可以在一行上写出for循环,如: 11 | ``` 12 | for x=0:2:10,y=sqrt(x),end 13 | ``` 14 | 15 | 在for循环中,循环变量k=m:s:n使用规则如下: 16 | 1. 步进值s可以是负数 17 | 2. 如果省略s,那么默认为1 18 | 3. 如果s是一个正数,且m大于n时不再执行循环;s是负数时同理 19 | 4. 如果m等于n,循环将执行1次 20 | 5. 循环完成后,k保持它的最终值。
21 | 22 | 尽量不要用i和j作为循环变量,因为它们一般用来表示虚部单位。 23 | 24 | ## 2.break和continue语句 25 | 与C/C++类似 26 | 27 | ## 3.使用数组作为循环索引 28 | 在这种情况下,循环变量是一个矢量,并且在每一次循环执行期间,MATLAB都将循环变量设置成等价于矩阵表达式的连续列。例如: 29 | ``` 30 | A=[1,2,3;4,5,6]; 31 | for v=A 32 | disp(v) 33 | end 34 | ``` 35 | 等价于 36 | ``` 37 | A=[1,2,3;4,5,6]; 38 | n=3; 39 | for k=1:n 40 | v=A(:,k) 41 | disp(v) 42 | end 43 | ``` 44 | 45 | ## 4.while循环 46 | 与C/C++类似 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Matlab_Notes 2 | 读《MATLAB基础教程》所做的笔记.
3 | 打开SUMMARY为目录. 4 | -------------------------------------------------------------------------------- /SUMMARY.md: -------------------------------------------------------------------------------- 1 | # Summary 2 | 3 | ## 1.MATLAB R2016b简介 4 | * [Introduction](README.md) 5 | * [MATLAB R2016b简介](matlab-r2016b简介.md) 6 | 7 | ## 2.Matlab的基本使用方法 8 | * [简单的数学运算](2.1.md) 9 | * [常用的操作命令和快捷键](2.2.md) 10 | * [MATLAB的数据类型](2.3.md) 11 | * [MATLAB的运算符](2.4.md) 12 | 13 | ## 3.数组和向量 14 | * [3.1 MATLAB数组](3.1.md) 15 | * [3.2 创建数组](3.2.md) 16 | * [3.3 数组操作](3.3.md) 17 | * [3.4 向量](3.4.md) 18 | 19 | ## 6.MATLAB编程 20 | * [6.1 脚本文件和编辑器](6.1.md) 21 | * [6.5 条件语句](6.5.md) 22 | * [6.6 循环](6.6.md) 23 | -------------------------------------------------------------------------------- /matlab-r2016b简介.md: -------------------------------------------------------------------------------- 1 | 一些关于脚本创建和命令行窗口的知识。 --------------------------------------------------------------------------------