Matlab 2 (Vector & Matrix)

a = [1 2 3 4]       % (Row Vector 行向量) 单行矩阵
a13 = a(3)
b = [1; 2; 3; 4]    % (Column Vector 列向量) 单列矩阵,(以;(semicolon 分号)相隔,表示换行)
b41 = b(4)

a*b    % 单行*单列 (称为:inner product 内积), 1by4矩阵乘以4by1矩阵,结果是:1行1列的
b*a    % 单列*单行 (称为:outer product 外积), 4by1矩阵乘以1by4矩阵,结果是:4行4列的



% matrix (同一个Row的entry之间用space隔开来,Row与Row之间用semicolon隔开来)
A = [1 21 6;
    5 17 9;
    31 2 7]

% 访问元素 方法一:括号里面是 row和col
A13 = A(1,3)
A31 = A(3,1)
minorOfA22 = A([1 3], [1 3])  % 逗号前面全是row,逗号后面全是col
A313233 = A(3,[1 2 3])            % 第3行全部
A313233 = A(3,:)                  % 第3行全部

% 访问元素 方法二:索引index,从上至下,从左到右,依次是1~n*m
A11 = A(1)
A21 = A(2)
A31 = A(3)
A12 = A(4)
A135 = A([1 3 5])        % 取第1,3,5个元素放在一个Row Vector中
A1313 = A([1 3; 1 3])    % 取第1,3个元素分别放在两行

% Replacing Entries (修改元素)
A(1,2) = 76             % 将第1行 第2列 改为76
A(3,2) = 0              % 将第3行 第2列 改为0
A([1 2], [2 3]) = 0     % 将第1、2行的第2、3列改为0
A(3,:) = []             % 将第3行删掉



% 冒号(colon) 用于 等差级数 的创立
B = [1:10]     % 等差=1
C = [1:2:10]   % 等差=2
D = [1:5;
    2:3:15;
    -2:0.5:0]
str = 'a':2:'z'


% 扩充矩阵
A = [1 2;
    3 4]
B = [9 9;
    9 9]
F = [A B]     % 横向扩充
F = [A;B]     % 纵向扩充


%矩阵的四则运算(Array Manipulation),operators:
% +  -  *  /(A/B 是 A*(B的逆矩阵))  ^(次方)  .(element operator)  '(转置)
A = [1 2;
    3 4]
B = [3 1;
    2 1]
x1 = A+B
x2 = A-B
x3 = A*B    % 矩阵的乘法:行乘以列加和
x4 = A.*B   % .* 的运算规则和+-相同,就是第1个乘第1个,第2个乘第2个...
x5 = A/B    % / 是 A*inverse(B)
x6 = A./B   % ./ 的运算规则和+-相同,就是第1个除以第1个,第2个除以第2个...
a = 2
y1 = A+a
y2 = A*a
y3 = A/a    % 和 ./ 是一样的
y4 = A./a
y5 = A^a    % 相当于a个A矩阵相乘
y6 = A.^a   % 每个元素分别a次方
At = A'     % A的转置矩阵,行变列 (也可以看成是:主对角线不变,以主对角线为轴的对称元素互换)


% 特殊矩阵
eye(3)             %(identity matrix 乘法单位矩阵I) 括号里是几就是几阶的方阵:主对角线是1,其它都是0.
zeros(2,3)         % 2行3列的全0矩阵
ones(2,3)          % 2行3列的全1矩阵
diag([2 3 4])      % (diagonal matrix 对角矩阵) 指定主对角线元素,其它地方都是0
linspace(-5,5)     % linear spaced vectors(-5到5之间返回100个均匀间隔点组成的单行矩阵)
linspace(-5,5,6)   % -5到5之间返回6个均匀间隔点组成的单行矩阵
rand(3)            % 3阶随机数方阵
rand(3,4)          % 3行4列的随机数矩阵
1 + (10-1).*rand(5,1)  % 可以使用公式r = a + (b-a).*rand(N,1)在间隔 (a, b) 之间生成N个随机数.
randi([10 50],1,5)     % 使用randi函数,从10和50之间的统一分布中生成5个随机整数。


% Functions for matrix
A = [1 3 2;
    0 6 5;
    7 0 9]
max(A)        % 每一列中最大的元素
max(max(A))   % 整个矩阵最大的元素
min(A)        % 每一列中最小的元素
min(min(A))   % 整个矩阵最小的元素
sum(A)        % 每一列的和
sum(sum(A))   % 整个矩阵的和
mean(A)       % 每一列的平均值
mean(mean(A)) % 整个矩阵的平均值

sort(A)       % 每一列从小到大排序
sortrows(A)   % 每一行从小到大排序
size(A)       % (dimension 维)几行几列
length(A)     % 几列
find(A==0)    % (索引index是从上到下,从左到右,从1开始数的)寻找等于0的元素的索引index是多少(结果是列向量)
Matlab 2 (Vector & Matrix)_第1张图片
(9) 矩阵的四则运算.png

你可能感兴趣的:(Matlab 2 (Vector & Matrix))