Matlab基本命令练习

1.创建三维数组:

>> A4=[1,2;3,4]
>>A5=[5,6;7,8];
>> A6=cat(3,A4,A5)

结果:
A6(:,:,1) =

 1     2
 3     4

A6(:,:,2) =

 5     6
 7     8

2.利用reshape定义三维数组:

 reshape(1:12,[2,2,3])

结果:
ans(:,:,1) =

 1     3
 2     4

ans(:,:,2) =

 5     7
 6     8

ans(:,:,3) =

 9    11
10    12

3.利用cell函数定义元胞数组:

>> c2=cell(2,4)

c2 =

[]    []    []    []
[]    []    []    []

c2{2,3}=[1 2 3 4 5]

c2 =

[]    []              []    []
[]    []    [1x5 double]    []

4.数组转换函数

A1=rand(60,50);
B1=mat2cell(A1,[10 20 30],[25,25]) %将矩阵分块,转为元胞数组

B1 =

[10x25 double]    [10x25 double]
[20x25 double]    [20x25 double]
[30x25 double]    [30x25 double]

C1=cell2mat(B1);%将元胞数组转为矩阵
isequal(A1,C1)

ans =

 1

除此之外,还有几个常用的命令:
num2cell,将数值型数组转为元胞数组
cell2struct,将元胞型数组转为结构数组
struct2cell,将结构数组转为元胞数组
num2str,将数值型数组转为字符型数组
str2num,将字符型数组转为数值型数组

5.矩阵的点乘方不要求矩阵为方阵,有以下两种情况:
(1)A为矩阵,x为标量,A.^x表示对矩阵中的每一个元素求x次方;
(2)A和x为同型矩阵,A.^x表示对矩阵A中的每一个元素求x中对应元素次方。

6.(1)det()函数计算矩阵的行列式,inv()计算逆矩阵,pinv()可计算广义伪逆矩阵。
(2)eig()计算方阵的特征向量,trace()计算矩阵的迹,rank()计算矩阵的秩。

7.建立5×5矩阵A,A的第一行乘以1,第二行乘以2,…,第五行乘以5.

A=[12,13,14,15,13;44,54,56,23,54;98,54,12,67,45;44,65,12,76,23;54,23,76,32,90];
D=diag(1:5);
D*A

8.求矩阵上三角阵的函数是triu(A),triu(A,k)功能是提取矩阵第k条对角线以上的元素。同理,下三角矩阵的函数为tril()。将矩阵左右翻转的函数是fliplr(),上下反转为flipud()。

9.MATLAB绘制图形。

>> x=logspace(-1,2);
>> loglog(x,exp(x),'-s')
>> grid on
>> xlabel('X');
>> ylabel('Y');

效果图

画一个复杂的函数图像:

>> fun=@(a,x)[a(1)+a(2)/2*(x-0.17).^2+a(3)/4*(x-0.17).^4];
>> x=0:00.01:1;
>> y=fun(a,x);
>> xlabel('X');
>> ylabel('Y=f(X)');
>> text('Interpreter','latex',...
'String',['$$-19.6749+\frac{22.2118}{2}(x-0.17)^2'...
'+\frac{5.0905}{4}(x-0.17)^4$$'],'Position',[0.05,-12],...
'FontSize',12)

效果图:

10.产生一列正弦波信号,然后调用smooth函数对加入的噪声进行滤波(平滑处理):

>> t=linspace(0,2*pi,500)';
>> y=100*sin(t);
>> noise=normrnd(1,15,500,1);
>> y=y+noise;
>> figure;
>> plot(t,y);
>> xlabel('t');
>> ylabel('y=sin(t)+噪声');
>> yy1=smooth(y,30);
>> figure;
>> plot(t,y,'k:');
>> hold on;
>> plot(t,yy1,'k','linewidth',3);
>> xlabel('t');
>> ylabel('moving');
>> legend('加噪声波形','平滑后波形');

效果图:

11.用不同方法求解f(x)的数值导数,并在坐标系中画出f’(x)的图像。

>> f=inline('sqrt(x.^3+2*x.^2-x+12)+(x+5).^(1/6)+5*x+2');
>> g=inline('(3*x.^2+4*x-1)./sqrt(x.^3+2*x.^2-x+12)/2+1/6./(x+5).^(5/6)+5');
>> x=-3:0.01:3;
>> p=polyfit(x,f(x),5);
>> dp=polyder(p);
>> dpx=polyval(dp,x);
>> dx=diff(f([x,3.01]))/0.01;
>> gx=g(x);
>> plot(x,dpx,x,dx,'.',x,gx,'-');

结果图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值