矩阵和数组
1 rand( x,y):
产生 x行y列的 0-1的随机数 , 矩阵
2 转置矩阵:
请使用单引号 (’): a’
3 元素级乘法(非矩阵乘法) .*
两矩阵对应位置元素相乘
4 标准矩阵乘法 *
5矩阵串联 Array concatenation
串联是连接数组以便形成更大数组的过程。实际上,第一个数组是通过将其各个元素串联起来而构成的。成对的方括号 [] 即为串联运算符。
A = [1 2 3;4 5 6;7 8 10]
A = [a,a] 或者A = [a a]
A = 3×6
1 2 3 1 2 3
4 5 6 4 5 6
7 8 10 7 8 10
使用逗号将彼此相邻的数组串联起来称为水平串联。每个数组必须具有相同的行数。同样,如果各数组具有相同的列数,则可以使用分号垂直串联。
A = [a; a]
A = 6×3
1 2 3
4 5 6
7 8 10
1 2 3
4 5 6
7 8 10
6 复数
复数包含实部和虚部,虚数单位是 -1 的平方根。
sqrt(-1)
ans = 0.0000 + 1.0000i
要表示复数的虚部,请使用 i 或 j。
c = [3+4i, 4+3j; -i, 10j]
c = 2×2 complex
3.0000 + 4.0000i 4.0000 + 3.0000i
0.0000 - 1.0000i 0.0000 +10.0000i
7 数组索引
要访问数组的选定元素,请使用索引。
A = 4×4
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
引用数组中的特定元素有两种方法。最常见的方法是指定行和列下标,例如
A(4,2)
ans = 14
另一种方法不太常用,但有时非常有用,即使用单一下标按顺序向下遍历每一列:
A(8)
ans = 14
使用单一下标引用数组中特定元素的方法称为线性索引。
如果尝试在赋值语句右侧引用数组外部元素,MATLAB 会引发错误。
test = A(4,5)
Index exceeds matrix dimensions.
不过,您可以在赋值语句左侧指定当前维外部的元素。数组大小会增大以便容纳新元素。
A(4,5) = 17
A = 4×5
16 2 3 13 0
5 11 10 8 0
9 7 6 12 0
4 14 15 1 17
method1.2 A( [1 3 5] )
[1 31 17]
method1.3 A( [1 3 ;1 3] )
A=2×2
1 31
1 31
method2.2 A( [1 3 ,1 3] )
A=2×2
1 6
31 7
8 冒号运算符 Colon Operator
使用 冒号 : 来指定一个 start:end的范围
1、A(1:2, 2:3)
表示矩阵A的1到2行,2到3列的元素
单独的冒号无 start值与end值 则指定为 该维度的所有元素
2、A(1:2, :)
表示1到2行的所有列
例如 delete row or columns of array
删除矩阵A1的 1到2行的所有列
A(1:2, :) = []
3、 冒号运算符还允许使用格式
start:step:end
创建等距向量值 (step 步长),如果省略中间的步骤(如 start:end 中),MATLAB 会使用默认步长值 1。
B = 0:10:100
B = 1×11
0 10 20 30 40 50 60 70 80 90 100
多种用法:如下图
7 matlab 变量区分大小写
8 who和whos 指令
who 显示变量
whos 显示所有变量 以及他们的大小、类型等
9 注意不要使用keyword
不会报错, 会让程序混乱
例如
cos = 'this string';
cos(3)
结果:
ans = s
如果用了 记得用clear 去清除, 单独clear 是将工作区内所有变量清除
clear cos
10 format
设置命令行窗口输出显示格式
有很多形式
例如 format rat 结果表达为分式
>> 5/3
ans =
1.6667
>> format rat
>> 5/3
ans =
5/3
11 矩阵运算 Array Manipulation
+
-
*
/ A/B ≈ A/inv(B)
^
.* 点乘 ./ 点除 .^ 每个元素取次方
' 转置
12 Some Special Matrix
13 Some Matrix related function
sort(A) :对每一个Column按照从大到小排序
sortrows(A) : 对第一个column排序且捆绑row
sortrows(A, 2) : 对第2个column排序且捆绑row
size(A) : 每个dimension是多少
length(A) : Vector(向量只有一个维度)的长度
find(A==6) : 返回矩阵中元素值为5 的位置 此处位置为 8
A =
1 2 3
0 5 6
7 0 9
>> sort(A)
ans =
0 0 3
1 2 6
7 5 9
>> sortrows(A)
ans =
0 5 6
1 2 3
7 0 9
>> sortrows(A,2)
ans =
7 0 9
1 2 3
0 5 6
>> size(A)
ans =
3 3
>> length(A)
ans =
3
>> A(1,:)=[]
A =
0 5 6
7 0 9
>> size(A)
ans =
2 3
>> length(A)
ans =
3
>>