Matlab环境
命令行窗口(Command window)
命令在》提示符后面输入。
简单的数学计算可以直接输入
如:
>>433.12*15.7
得到:
ans =
6.8000e+003
Matlab方便的输出答案,并且将结果放入变量ans中。
也可以用自定义的变量名,如:
>>x=5*6
得到:
x=
30
后面可以直接使用得到的变量,如上面已经得到x=30,接下来:
>>y=x*5
得到:
y=
150
区分:
>>y=x*5; | >>y=x*5 |
---|---|
按回车以后不会显示结果,但是结果可在工作区查看 | 按回车以后直接显示y=? |
建议输入的时候,中间加上空格,更清楚。
Matlab指令 | 含义 |
---|---|
a * b | ab |
a / b (左除) | a/b |
a \ b (右除) | b/a |
a ^ b | a^b |
a + b | a+b |
a - b | a-b |
优先级和数学上面的一致,右除优先于左除 | |
= | 赋值运算 |
who | 显示目前为止所有的变量名称 |
>>clear 清除所有变量,重新开始;
>>clear x y z 清除x,y,z,三个变量
较长的表达式,可以在行尾加上三点(…)进行续行输入。
>>format long | 数据保留小数点后16位 |
---|---|
>>format short | 数据保留小数点后四位(默认) |
>>format bank | 数据保留小数点后两位 |
>>format short e | 四位小数的指数 |
>>format long e | 十五位小数的指数 |
>>format rat | 分数形式 |
π | pi |
---|---|
e^a | exp(a) |
平方根 | sqrt |
lnx | log(x) |
log10(x) | log10(x) |
三角函数 | sin,cos |
反三角函数 | atan |
复数 | 2+3i |
**改错:**按住方向键上,选择正确的输入,重新回车
%表示注释
数组采用方括号[]表示,元素之间采用冒号(:)或分号(;)或者空格。
>>之前保存的文件名(后缀为.m),可以直接输出上一次的输出结果。
>>quit 退出matlab
向量与矩阵
向量
列向量:元素用(;)区分开来。
如:
>>a = [1; 2; 4]
命令行末尾加(;)禁止输出。
行向量:元素用(,)区分开来或者空格(space)。
转置(’),可以实现行列向量的转置。可以实现复数的共轭转置。
向量的合并,如:
>>A=[1;2;3];
>>B=[4;5;6];
>>v=[A;B]
等差元素向量:
>>x=[0:2:10] %0-10之间的偶数横向量
>>linspace(a,b) %创建了a,b之间等差100个等差元素的向量
>>linspace(a,b,n) %创建了a,b之间等差n个等差元素的向量
>>logspace(a,b,n) %创建了10a-10b之间n个等差元素的向量
>>A=[1,2,3,4,6];
>>length(A) %向量中包含元素的个数,5
>>max(A) %向量中最大的元素
>>min(A) %向量中最小的元素
数组乘法(.*)
>>J=[0;3;4];
>>x=J.*J %0,9,16
>>a=sum(J.*J) %25
>>mag=sqrt(a) %5
复数求模值:
>>u=[i;1+2i;4];
>>v=conj(u);
>>sqrt(sum(v.*u)) %4.6904
>>a=[-2 0 -1 9];
>>b=abs(a) %取绝对值2 0 1 9
点乘
>>a = [1;4;7]; b=[2;-1;5];
>>c=dot(a,b) %点乘得到33
叉乘
>>a = [1;2;3]; b=[2;3;4];
>>c=cross(a,b) %叉乘得到-1 2 1
>>A=[12;17;-2;0;4;4;11;19;27];
>>A(2) %输出第二个元素
>>A(2:4) %输出第2到第4的元素
>>A(:) %列出向量所有元素
矩阵
>>A=[-1 6;7 11] %行元素之间用空格或者(,);列元素之间用(;)
>>B=A’ %转置
若A是复数,则B为A的共轭转置;若要求B不是A的共轭转置则(.’)
数组乘法(.*):
>>A=[12 3;-1 6]; B=[4 2;9 1];
>>C=A.*B %C=48 6
-9 6 对应元素相乘
矩阵乘法(*):
A=[2 1;12]; B=[3 4;5 6];
>>C=A*B %C=11 14
13 1
>>A=[1 2 3 4];b=2;B=[2 4 6 8];
>>C=A+b %C=[3 4 5 6]
>>D=A./B %D=[0.5 0.5 0.5 0.5]
>>E=A.\B %E=[2 2 2 2]
>>F=A.^2 %F=[1 4 9 16]
>>eye(4) %4阶单位矩阵
>>zeros(4) %4阶0矩阵
>>zero(m,n) %m行n列全0
>>ones(4) %4阶1矩阵
>>ones(m,n) %m行n列全1
>> A=[1 2 3;4 5 6;7 8 9];
>> A(2,3) %取第2行第3列元素为6
>> A(:,2) %取第二列所有元素
>> A(:,2:3) %取第二列第三列所有元素
>> A(2:3,1:2) %取第2-3行,1-2列的元素
>> A(1,1)=-8 %第一行第一列换成-8
>> A(2,:)=[] %第二行所有元素删掉
>> E=A([1 1 1 1],:) %A的第一行复制四次,成为E
>> F=A([1 2 1],:) %F的第一行为A的第一行,第二行为A的第二行,第三行为A的第一行
计算行列式
>> A=[5 2 -9;-9 -2 2;6 7 3];
>> det(A) %得到A的行列式437
>> b=[-18;-7;29];
>> A\b %得到方程组的解
>> rank(A) %得到A的秩
>> rank([A b]) %得到增广矩阵的秩
>> inv(A) %得到逆矩阵
>> B=ans*A %验证得到单位矩阵
>> C=inv(A)*b %求解的第二种方法
计算行列式
>> A=[3 2 -1;0 4 1];b=[7;2];
>> x=A\b %得到一组解
>> y=pinv(A)*b %得到一组解
>> sum(A) %得到每列的和3 6 0
>> A=magic(8) %得到魔方矩阵元素从1-82,行元素的和等于列元素的和
>> rref(A) %消元法产生阶梯矩阵
[1 0 0 1 1 0 0 1
0 1 0 3 4 -3 -4 7
0 0 1 -3 -4 4 5 -7
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0]
矩阵的LU分解来求方程组
计算行列式
>> A=[3 2 -9;-9 5 2;6 7 3];b=[-65;16;5];
>> [L U]=lu(A)
L =
-0.3333 0.3548 1.0000
1.0000 0 0
-0.6667 1.0000 0
U =
-9.0000 5.0000 2.0000
0 10.3333 4.3333
0 0 -9.8710
>> x=U\(L\b)
绘图与图形
Matlab中绘图的三个步骤:
1.定义函数
2.指定要绘制的函数图形的值范围
3.调用plot(x,y)函数
>> x=[0:0.1:10]; %0-10,以0.1为增量绘图,这个值不宜太大
>> y=cos(x);
>> plot(x,y) %绘图
>>plot(x,y), xlabel('x'),ylabel('cos(x)') %横坐标x,纵坐标y
例题:t表示时间,[0,4],间隔0.02s,,标题显示“阻尼弹力”。
>> t=[0:0.02:4];
>>f = exp(-2*t).*sin(t); %当一个函数由两个或更多个函数相乘构成,用“.*”,表示对两个矩阵相乘
>> plot(t,y),xlabel('x'),ylabel('f(t)=exp(-2t)*sin(t)'),title('阻尼弹力')%横坐标x,纵坐标y,标题'阻尼弹力'
或者:
>> t=[0:0.02:4];
>>fplot('exp(-2*t)*sin(t)',[0,4]),xlabel('x'),ylabel('y'),title('阻尼弹力')
例题:激活函数y=tanh(x),-6≤x≤6,显示表格。
>> x=[-6:0.01:6];
>> y=tanh(x);
>> plot(x,y)
>> grid on %显示表格
>>axis square %拉伸图像成方形,默认这一种
>>axis equal %横纵坐标间距相等
>>axis auto %Matlab自动选择(可没有该指令)
例题:0≤t≤5,和绘制在同一个图像上。
>> t=[0:0.01:5];
>> g=exp(-2*t);
>> f=exp(-t);
>> plot(t,f,t,g)
‘-’ | 实线 |
---|---|
‘–’ | 虚线 |
‘-.’ | 虚点线 |
‘:’ | 点线 |
>> plot(t,f,'--',t,g,':')
>> plot(t,f,t,g,':') %区分格式
例题:0≤x≤2上绘制双曲三角函数sinh(x)和cosh(x),添加图例
>> x=[0:0.1:2];
>> y=sinh(x);
>> z=cosh(x);
>> plot(x,y,x,z)
>> legend('sinh(x)','cosh(x)') %添加图例
>> plot(x,y,'y',x,z,'k--')
白色 | w |
---|---|
黑色 | k |
蓝色 | b |
红色 | r |
青色 | c |
绿色 | g |
洋色 | m |
黄色 | y |
例题:绘制y=sin(2x+3)函数在0≤x≤5之间的图像。
>> x=[0:0.1:5];
>> y = sin(2*x + 3);
>> plot(x,y)
>> axis([0 5 -1 1]) %限制图像显示x轴[0 5],y轴[-1 1]
20220410
查看某一函数功能的四种方法:
>>help plot
>>edit plot
>>doc plot
>>lookfor plot