matlab基础
一些数学建模过程中使用的编程语言
matlab 基础
变量
无需声明,直接赋值
- 变量名:大小写敏感,数字字母组成,不能以数字开头,保留关键词
- 数组索引从1开始
- 数字型变量显示格式 format <显示格式>
- short 短定点格式显示小数点后4位
- long 变量double类型显示小数点后15位
- shortE/longE 科学计数法
- bank 小数点后两位
- hex 十六进制格式
- rat 比例格式
- matlab命令行
- clc 清除终端
- clear 清除当前工作区内所有变量
- who 以简略格式显示工作区内所有变量
- whos 复杂格式
matlab函数
常用函数介绍
三角函数:
1
2
3
4
5
6
7
8
9
10
11
12sin 正弦
sinh 双曲正弦
asin 反正弦
asinh 反双曲正弦
cos 余弦
cosh 双曲余弦
acos 反余弦
acosh 反双曲余弦
tan 正切
tanh 双曲正切
atan 反正切
atanh 反双曲正切
指数对数:
1
2
3
4
5
6
7
8
9exp 指数
log e为底的对数
log10 常用对数
sqrt 平方根
abs 模或绝对值
angle 幅角
conj 复共轭
Imag 虚部
real 实部舍入函数:
1
2
3
4
5fix 向0舍入
floor 向负无穷舍入
ceil 向正无穷舍入
round 四舍五入
rem(a,b) 计算a/b的余数
有关向量:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15min(x) 向量x的元素的最小值
max(x) 向量x的元素的最大值
mean(x) 向量x的元素的平均值
median(x) 向量x的元素的中位数
std(x) 向量x的元素的标准差
diff(x) 向量x的相邻元素的差
sort(x) 对向量x的元素进行排序
length(x) 向量x的元素个数
norm(x) 向量x的Euclidean长度
sum(x) 向量x的元素总和
prod(x) 向量x的元素连乘积
cumsum(x) 向量x的累计元素和
dot(x,y) 向量x和y的内积
cross(x,y) 向量x和y的外积
cumprod(x) 向量x的累计元素总乘积
matlab矩阵运算
- 矩阵输入最简单的方法是把矩阵的元素直接排列在方括号中。每行内的元素用空格或者逗号隔开,行与行之间用分号隔开
- 索引竖着 A=[1,2,3;4,5,6;7,8,9]; A(8)=A(2,3)=6
- 矩阵的转置 >> A’
- 矩阵的加减 >> A+B
- 矩阵的乘法 >> A*B
- 矩阵的行列式 >> det(A)
- 矩阵求秩 >>rank(A)
- 矩阵求迹 >>trace(A)
- 矩阵求逆 >> inv(A) 利用逆矩阵可以解方程组AX=b
- >> A = [1,1,3;4,6,6;7,1,9]
- >> inv(A)*b / >> A\b
- 矩阵的特征值 >> eig(A) >> [X,V] = eig(A) X:特征向量 V:特征值
控制流程
if语句:
1
2
3
4
5
6
7if condition1
statement1
elseif condition2
statement2
else
statement3
endswitch语句:
1
2
3
4
5
6
7
8switch expression
case value1
statement1
case value2
statement2
otherwise
statement
endwhile语句:
1
2
3wihle expression
statement
endfor语句:
1
2
3for variable = start:increment:end
commands
end
封装函数
1 | function [输出变量名] = 函数名(输入变量) |
- function是一个关键字,声明该文件中保存的是一个函数
- 输入变量和输出变量是非必须的,函数既可以没有输入变量,也可以没有输出变量
- 函数名应与.m文件名相同,且不包含特殊字符
以函数句柄形式定义函数
1 | 函数句柄 = @(输入变量) 输出变量 |
函数作图
1 | x = [0:0.01:10] |
plot(x)
plot(x,y,参数)
plot(x1,y1,x2,y2,,,,,,xn,yn)
参数:
1
2
3'-':实线 ‘:’:虚线 '-.':点划线 ‘--’:双划线
'k':黑色 'b':蓝色 'c':蓝绿色 'g':绿色 'm':洋红色 'r':红色 'w':白色 'y':黄色
'*':星号 'o':圆圈 's':方块 'p':五角星 '^':上三角 'X':叉 '+':+ 'd':菱形 'v':下三角 '<':左三角 '>':右三角 'H':六角形函数句柄:
1
fplot(@(x)sin(X),[0,10],'-r')
对数坐标图:
1
2
3semilogx(x1,y1,'参数',x2,y2,'参数')
semilogy(x1,y1,'参数',x2,y2,'参数')
loglog(x1,y1,'参数',x2,y2,'参数')极坐标图:
1
polar(theta,rho,'参数')
条形图:
1
2bar(y,style)
bar(x,y,style)直方图:
1
2hist(y)
hist(y,x)面积类图形:
1
pie(x,explode)
散点类图形:
1
scatter(x,y,选项,'filled')
矢量类图形:
1 | %已知向量A,B,求A+B,并用矢量图表示 |
显示微分方程
1 | [𝒕,𝒙] = 𝒔𝒐𝒍𝒗𝒆𝒓(′𝒐𝒅𝒆𝒇𝒖𝒏 ′ , 𝒕𝒔, 𝒙𝟎 , 𝒐𝒑𝒕𝒊𝒐𝒏𝒔) |
t 自变量
x 函数值
solver 显示函数一般有ode45 、ode23 、ode113、ode15s、ode23s
odefun 微分方程文件,使用’’或@
1
2
3
4% 定义函数文件
function yp=funt(t,y)
yp=(y^2-t-2)/4/(t+1);
endts 自变量范围
x0 函数初值
option 用于设定误差限 options=odeset(‘reltol’, rt,’abstol’,at)
- rt 相对误差
- at 绝对误差
若是高阶微分方程,改写长一介常微分方程组
Lingo
生成一维矩阵
1 | sets: |
- factory 和 plant 都是制造矩阵的工厂,但它们是两家不同的工厂。
- factory 工厂最后面出现的 a 和 b都是 1*6的矩阵。
矩阵赋值
1 | sets: |
- 不是每个矩阵都要赋值
- 需要赋值的矩阵必须赋满
循环语句
1 | @for(factory:执行语句); |
- for循环内先写工厂,告诉for循环几次
sum求和
1 | @sum(factory:累加内容); |
例子
1 | model: |
生成二维矩阵
1 | sets: |
- cooperation(a,b)用于合并,如上c,x为6*8
函数名 | 作用 |
---|---|
@for( factory:a>0) | 循环 |
@sum(factory: a) | 求和 |
@prod(factory: a) | 求积 |
@max(factory: a) | 求最大值 |
@min(factory: a) | 求最小值 |
@in(factory: a) | 判断是否在其中 |
@size(factory) | 工厂长度 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 zfmx's Blog!
评论