├── .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 | 一些关于脚本创建和命令行窗口的知识。
--------------------------------------------------------------------------------