matlab学习笔记
基础知识
路径相关
- 路径搜索顺序
graph LR
A[变量] --> B[内部函数]
B --> C[程序文件]
C --> D[当前文件夹下的程序文件]
C --> E[文件搜索路径文件夹中的程序文件]
D --> E
- 设置文件搜索路径
path(path, 'e:\work')
- 设置当前路径
cd destination_path
常用系统命令
class
返回参数类型who/whos
显示工作区变量save/load
保存、导入工作区变量
save mydata x y %将x和y保存到mydata.mat中
load mydata %将mydata.mat中的x和y加载到工作区
format
设置输出格式
%rat:输出分数,long:输出long型
>>format long % 设置格式
>>50/3
ans = 16.666666
>>format % 清除格式
>>50/3
% 返回 ans=16.6667
- 打印输出
% disp、fprintf、sprintf
数值计算
基础
- 三角函数:以角度为单位在函数名后加d
sin(pi/2) % 弧度制
sind(90) % 角度制
- 常用取整函数
fix, floor, ceil, round
- 左除和右除:B/A等价于Binv(A),A/B等价于inv(A)B
积分
% 定义常数
syms a b
% 不定积分
inty = int(x, y)
% 定积分
inty = int(x, y, 1, 10)
字符串
% eval命令:将字符串作为matlab命令进行执行
% 字符串比较函数
strcmp(s1,s2) %
strncmp(s1,s2,n) % 比较前n个字符是否相等
strcmpi(s1,s2) % 忽略大小写比较是否相等
strncmpi(s1,s2,n)
% 字符串查找与替换
findstr(s1,s2) % 返回短字符串在长字符串中的开始位置
strrep(s1,s2,s3) % 将字符串s1中的所有子字符串s2替换为字符串s3
矩阵相关
特殊矩阵:zeros、ones、eye、magic、vander、hilb、pascal
%magic魔方矩阵:行列对角线元素和相同
>> magic(3)
ans =
8 1 6
3 5 7
4 9 2
%vander范德蒙矩阵
>> vander(1:5)
ans =
1 1 1 1 1
16 8 4 2 1
81 27 9 3 1
256 64 16 4 1
625 125 25 5 1
%hilb希尔伯特矩阵
>> format rat
>> hilb(4)
ans =
1 1/2 1/3 1/4
1/2 1/3 1/4 1/5
1/3 1/4 1/5 1/6
1/4 1/5 1/6 1/7
%pascal帕斯卡矩阵:逆矩阵全为整数
>> pascal(4)
ans =
1 1 1 1
1 2 3 4
1 3 6 10
1 4 10 20
矩阵操作
% 提取矩阵对角线元素
diag(A) % 提取矩阵A主对角线元素,产生一个列向量
diag(A,k) % 提取矩阵A第k条对角线的元素,产生一个列向量
% 构造对角矩阵
diag(V) % 以向量V为主对角线元素,产生对角矩阵
diag(V,k) % 以向量V为第k条对角线元素,产生对角矩阵
triu(A) % 上三角矩阵
tril(A) % 下三角矩阵
% 转置运算
A'
% 矩阵的旋转
rot90(A,k) % 将矩阵A逆时针方向旋转90度的k倍,k=1时可省略
% 矩阵翻转
fliplr(A) % 左右翻转
flipud(A) % 上下翻转
矩阵特殊值
det(A) % 行列式
inv(A) % 求逆
rank(A) % 求秩
norm(A,k) % 向量V的k范数
nucnorm(A) % 核函数
cond(A,k) % 向量V的k条件数
det(A) * inv(A) % 伴随矩阵
% 求矩阵的特征值和特征向量
eigenvalue = eig(A)
[eigenvector, eigenvalue] = eig(A)
创建、截取矩阵
- 冒号表达式
% 0为初始值,10为中止值,2为步长,默认步长为1
>> t=0:2:10
t =
0 2 4 6 8 10
% 1为初始值,200为中止值,10为数据个数
>> u = linspace(1, 200, 10)
u =
1.0000 23.1111 45.2222 67.3333 89.4444 111.5556 133.6667 155.7778 177.8889 200.0000
- 结构矩阵和单元矩阵
% 结构矩阵:结构矩阵元素.成员名=表达式
>> a(1).x1=10;a(1).x2='liu';a(1).x3=[11,21,34,78];
>> a(2).x1=12;a(2).x2='wang';a(2).x3=[34,81,44,98];
>> a(3).x1=18;a(3).x2='hou';a(3).x3=[13,11,33,77];
>> a
a =
包含以下字段的 1×3 struct 数组:
x1
x2
x3
% 单元矩阵:大括号
>> b={10,'liu',[11,21,34,78];12,'wang',[34,81,44,98];18,'hou',[13,11,33,77]}
b =
3×3 cell 数组
[10] 'liu' [1×4 double]
[12] 'wang' [1×4 double]
[18] 'hou' [1×4 double]