命名规则:
clc:清除命令行的所有命令
clear all:清除所有工作区的内容
注释:两个% + 空格
%%
matlab的数据类型
1、数字
3
3 * 5
3 / 5
3 + 5
3 - 5
2、字符与字符串
s = 'a'
%% 求s的ascill码
abs(s)
char(97)
num2str(65)
str = 'I love zzu'
lenth(str)
3、矩阵
A = [1 2 3;4 5 2;3 2 7]\
%% A'代表A的转置矩阵
B = A'
%% A(:)表示将A矩阵按列拉长
C = A(:)
%% inv(A)表示求A的逆矩阵,注意A必须为方阵
D = inv(A)
%% 创建了一个三维的零矩阵每一层是10行5列
E = zeros(10, 5, 3)
rand、randi、randn
rand生成均匀分布的伪随机数,分布在(0, 1)之间
主要语法:rand(m, n)生成m行n列的均匀分布的伪随机数
randn生成标准正态分布的伪随机数(均值为0,方差为1)
语法同上
randi生成均匀分布的伪随机整数
主要语法
randi(iMAX)在开区间(0,iMAX)上生成伪随机正数
randi(iMAX, m, n)在开区间(0,iMAX)上生成m*n型随机矩阵
4、元胞数组和结构体
A = cell(1, 6)
%% matlab索引是从1开始的
A{2} = eye(3)
%% magic函数解释在下面
A{5} = magic(5)
B = A{5}
5、结构体
books = struct('name', {{'Machine Learing', 'Data Mining'}}, 'price', [30 40])
%% books中选择name属性
books.name
%% 取出来的是cell
books.name(1)
%% 取出来的是字符串
books.name{1}
矩阵的运算
1、矩阵的定义与构造
A = [1 2 3 4 5 6 ]
%% 最小值是1,最大值是9,步长为2 得到的是1 3 5 7 9
B = 1 : 2 : 9
%% 将B重复3行再重复两列
C = repmat(B, 3, 2)
%% 生成一个2*4并且全部为1的矩阵
D= ones(2, 4)
2、矩阵的四则运算
A = [1 2 3 4; 5 6 7 8]
B = [1 1 2 2; 2 2 1 1]
C = A + B
D = A - B
E = A * B'
%% 所有加.的是对应项相乘
F = A .* B
%% G = A / B相当于G = A * inv(B)
G = A / B
%% 对应项相除
G = A ./ B
3、矩阵的下标
A = magic(5)
%% 取A矩阵第二行第三列的位置
B = A(2,3)
%% 取A矩阵的第三行
C = A(3, :)
%% 取A矩阵的第四列
D = A(:, 4)
%% 返回A矩阵中所有大于20的索引值,一个方向给m一个方向给n
[m, n] = find(A > 20)
程序流程
循环控制
for 循环变量 = 初值 : 步长 : 终值
执行语句1
.
.
.
执行语句n
end
注意步长默认为1,如果我们步长为1可以不写
sum = 0;
for n = 1 : 5
sum = sum + n * n
end
循环控制
while 条件表达式
执行语句1
.
.
.
执行语句n
end
if 条件表达式1
执行语句1
else
执行语句2
end
一些见到的新的用法
%% f矩阵的第i行第j列赋值为1
f(i, j) = 1
求方阵无穷次幂的极限
%% syms 函数用于定义符号变量。符号变量是一种特殊类型的变量,用于表示数学表达式中的符号和变量,而不是数值。
%% 在定义符号变量之后,我们可以使用 MATLAB 的符号计算工具箱进行符号计算,例如求解方程、求导、积分、求极限、求解线性代数问题等。
syms X b;
X = [0.5 0.5; 0.7 0.3]
P = limit(X ^ b, b, inf)