Matlab学习笔记

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 * bab
a / b (左除)a/b
a \ b (右除)b/a
a ^ ba^b
a + ba+b
a - ba-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^aexp(a)
平方根sqrt
lnxlog(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
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值