MATLAB学习笔记2

%%学习目标  排序  最值   标准差   方差

%排序
   clear all;
   x=[1 3 4;8 3 5;2 7 4]
   yl=sort(x)                   %按列从小到大排序
   y2=sort(x,2)                 %按行从小到大排序
   y3=sort(x,1,'descend')       %按列从大到小排序

%最值

%%求最大值和最小值的差
clear all;
X1=[1 3 4 10 3 5]
yl=range(X1)
X2=[1 3 5;2 4 6;8 4 3]
y2=range(X2)
y3=range(X2,2) 

%%求最大值和最小值
clear all;
X1=[1 3 4 10 3 5]
yl=minmax(X1)
X2=[1 3 5;2 4 6;8 4 3]
y2=minmax(X2)

%标准差
clear all;
X1=[1 3 5;2 4 6;8 4 3]
y1=std(X1)
y2=std(X1,0)
y3=std(X1,1)
y4=std(X1,1,2)

%方差
clear all;
X1=[1 3 4 10 3 5]
yl=var(X1)
X2=[1 3 5;2 4 6;8 4 3]
y2=var(X2)

%区间参数估计   均匀分布

clear all;
X=unifrnd(2,8,20,3)
[a,b,aci,bci]=unifit(X,0.05)    %置信度为95%

%指数分布
clear all;
X=exprnd(5,20,4)
[parmhat1,parmci1]=expfit(X,0.05)       %置信度为95%

%%beta分布的参数估计
clear all;
X=betarnd(5,20,4,1)
[phat,pci]=betafit(X,0.05)     

%%正态分布的参数估计
clear all;
X=betarnd(5,20,4,1)
[phat,pci]=betafit(X,0.05)         

%%假设检验
%%方差已知时匠态总体值的假设检验

%%如果已知方差和均值
clear all;
X=[490 513 514 513 511 499 515 512 491];
[H1,P1,CI1,STATS1]=ztest(X,500,10,0.05,0)   %显著性水平ALPHA-0.05 期望是500方差是10
[H2,P2,CI2,STATS2]=ztest(X,500,10,0.1,0)

%%方差和均值未知时
clear all;
X=[490 513 514 513 511 499 515 512 491];
[H1,P1,CI1,STATS1]=ttest(X,500,0.05,-1)        %ALPHA-0.05       H0可以接受原假设

%%方差未知但是相等时
clear all;
X=[490 513 514 513 511 499 515 512 491];    
Y=[490 513 514 513 511 499 515 512 491];   
[H,P,CI,STATS]=ttest(X,Y,0.05,-1)

%% 分布一致性检验
clear all;
x=[3.2 7.0 2.8 4.5 7.5 2.3 5.8 1.4];
Y=[2.3 5.6 9.2 1.2 5.9 3.4 2.8 8.4 1.5 3.2];
[P,H,STATS]=ranksum(X,Y,0.05)

%%协方差和相关系数
%% 协方差
clear all;
X1=rand(1,5)
cl=cov(X1)          %方差
X2=rand(1,5)
c2=cov(X2)          %方差 
c3=cov(X1,X2)       %协方差

%%相关系数      如果不等于0说明相关,如果等于1或者-1说明是线性相关
clear all;
X=[1 2 3;3 4 6;7 4 2]
[R1,P1]=corrcoef(X)
x=[1 2 3 5 3 2];
y=[2 3 5 3 1 9];
R2=corrcoef(x,y)

%%偏斜度1
clcar all;
X=randn([4,5])
yl=skewness(X)

%%峰度
clear all;
X=randn([4,5])
yl=kurtosis(X)

%%正整数的频率表
clear all;
X=[2 3 4 1 2 1 6 5 8 3 2 1 6]
h=tabulate(X)
Z=h(1:end,1)
Y=h(1:end,end)
data=[Z Y]
subplot(2,2,1)
bar(data)
title('图1')



%%一元函数的绘制
clear all;
x=-2:0.1:4
figure;
plot(x,humps(x));
figure;
fplot(@humps,[-2,4])    %更加光滑

%%
clear all;
x=2*pi*[-1 1 -1 1]
figure;
fplot(@(x)[1/x,sin(x),cos(x)]);
legend('1/x','sin(x)','cos(x)');


%%绘制极坐标
clear all;
figure;
ezpolar('sin(8*t).*cos(8*t)',[0,pi])

%%符号函数的三维网格图
clear all;
figure;
ezmesh('x.*exp(x.^2-y.^2)') 

%%带有等值线的三维网格图
clear all;
figure;
ezmeshc('x.*exp(-5*x.^2-8*y.^2)')  

%%符号函数的等值线图
clear all;
figure;
ezcontour('x.*exp(-x.^2-y.^2)',[-3,3])    

%%
%%三维彩色曲面图
clear all;
figure;
ezsurf('x.*y.^3/(x.^2+y.^3)')        

%%带有等值线三维彩色曲面图
clear all;
figure;
ezsurfc('x.*y.^3/(x.^2+y.^3)')   

%% 基本绘图函数
clear all;
t=0.1:0.01:2*pi
figure;
plot(t,sin(t),'r',t,cos(t),'y');
xlabel('x');
ylabel('y');
title('tu')

%%
clear all;
y=magic(4)
figure;
plot(y)

%%
clear all;
x=0.01:0.2:6*pi
y=cos(x)
figure;
plot(x,y,'g:^')

%%子图绘制和坐标轴控制
clear all;
x=-pi:pi/20:pi
figure;
subplot(2,2,1);
plot(x,sin(x),'r->');
subplot(2,2,2);
plot(x,cos(x),'b-^');
subplot(2,2,[3 4]);
plot(x,cos(x),'b-^');

%%
clear all;
t=0.1:0.01:pi
figure;    
plot(sin(t),cos(t));
axis  auto                %设置坐标轴显示范围

clear all;
t=0.1:0.01:pi
figure;    
plot(sin(t),cos(t));
axis ([-1 1 -2 2])                 %设置坐标轴显示范围

clear all;
t=0.1:0.01:pi
figure;    
plot(sin(t),cos(t));
axis off                   %取消坐标轴显示范围            


%%网格线和边框的设置
clear all;
t=0.01:0.01:2*pi;
figure;
plot(t,sin(t));
axis([0 2*pi -1 1]);
grid on;              %显示网格线

%%网格线和边框的设置
clear all;
t=0.01:0.01:2*pi;
figure;
plot(t,sin(t));
axis([0 2*pi -1 1]);
box off;              %off关闭边框    on 打开边框    

%%坐标轴的缩放问题
clear all;
t=0.01:0.01:2*pi;
figure;
subplot(1,2,1)
plot(t,sin(t));
axis([-5 10 -3 3]);
title('放大前');
subplot(1,2,2)
plot(t,sin(t));
axis([-5 10 -3 3]);
title('放大前');    
zoom xon            %放大

%%
clear all;
t=0.01:0.01:2*pi;
figure;
plot(t,sin(t));
pan on              %图的拖拽
datacursormode on   %获取数据点

%%绘制直线
clear all;
x=0.01:0.8:2*pi;
y=sin(x);
figure;    
line(x,y);





%%极坐标绘图
clear all;
x=0.01:0.02:2*pi;
y=sin(2*x).*cos(2*x);  
figure;
polar(x,y,'--r')     %弧度   半径   线型
pan on              %图的拖拽
datacursormode on   %获取数据点

%双y轴绘图
clear all;
x=0.01:0.02:2*pi;
y=sin(2*x); 
z=10.^x
figure;
plotyy(x,y,x,z);

%%文本框注释
clear all;
x=0.01:0.02:2*pi;
y=sin(x);     
figure;
plot(x,y,'--b')
xlabel('x')
ylabel('sin(x)')
text(pi,sin(pi),'\leftarrow sin(\pi)=0');
text(0,0,'\leftarrow sin(0)=1');

%任意位置标注
clear all;
x=0.01:0.02:2*pi;
y=sin(x);     
figure;
plot(x,y,'--b')
xlabel('x')
ylabel('sin(x)')
gtext('y=sin(x)','fontsize',10)

%%各类二维图的绘制
clear all;
figure;
x=[0.2 0.3 0.2]
subplot(121)
pie(x)
subplot(122)
y=[0.1 0.2 0.3 0.2 0.2];
explode=[0 0 1 0 0];            %%突出第三个
pie(y,explode)

%%绘制直方图
clear all;
figure;
x=randn(500,1)   %标准正态分布    
subplot(121)
hist(x);
subplot(122)
y=randn(800,1)
hist(y,-4:0.1:4)

%散点图
clear all;
figure;    
x=[1 2 3 4 5]   
y=[1 2 3 4 5]    
subplot(121)
scatter(x,y);
subplot(122)
scatter(x,y,[],[1 0 0],'fill')  %散点的颜色和填充

t=linspace (0,24*pi,1000);
r=exp(sin(t))-2*sin(4.*t)+(cos(t./5)).^6;
polar(t,r)
[x,y]=pol2cart(t,r);
figure;
plot(x,y)

%%三维图的绘制
clear all;
x=-10:0.1:10;
y=-10:0.1:10;
[x1,y1]=meshgrid(x,y);
z=x1.^2+y1.^2
figure               %图形窗口            
surf(x,y,z);            %三维图的绘制函数
view([55 75])               %设置视角
colormap('cool');           %设置颜色
shading interp;
light('Position',[1 0.4 0.4]);          %设置光照
axis square                     %坐标轴设置

%%三维图的曲线
clear all;
t=linspace(0,20*pi,500);
x=t.*sin(t)
y=t.*cos(t)
z=t
figure;
plot3(x,y,z)


%%多项式的建立
%1、通过多项式系数建立多项式
clc;
clear all;
a=[2 3 5 4];
y=poly2sym(a)
disp(y)

%2、通过多项式的根建立多项式
clc;
clear all;
a=[2 3 5 4];
s=poly(a)
y=poly2sym(s)
disp(y)


%%多项式的求值
%1、多项式求值
clc;
clear all;
a=[2 3 5 4];
x=1:6;
y=polyval(a,x)

%%多项式求值的另一种函数,导致结果不一样
clc;
clear all;
a=[2 3 5 4];
x=[2 3;5 4];
y=polyvalm(a,x)             %采用polyvalm()函数,以矩阵为计算单位

%多项式求根
clc;
clear all;
p=[1 0 0 -5 -2];
x1=roots(p)
x2=[2 4];
y=poly(x2);
y=poly2sym(y)

%多项式的四则运算
%乘法
clc;
clear all;
p1=[1 0 0 -5 -2];
p2=[2 4 5 -5 -2];
q=conv(p1,p2);
[k,r]=deconv(p1,p2)
poly2sym(q)
y1=poly2sym(k)
y2=poly2sym(r)

%%多项式求导
clc;
clear all;
p1=[1 0 0 -5 -2];
p2=[2 4 5 -5 -2];
y1=polyder(p1)          %对多项式p1求导
y1=poly2sym(y1)
y2=polyder(p1,p2)       %对多项式pl和p2的乘积求导
y2=poly2sym(y2)
[q,d]=polyder(p1,p2)    %对多项式p1除以p2的商求导
q=poly2sym(q)
d=poly2sym(d)

%%多项式积分
clc;
clear all;
p1=[2 6 8]; 
y1=polyint(p1,7)        %对多项式pl进行积分,常数项为7
y1=poly2sym(y1)
y2=polyint(p1)          %对多项式p1进行积分,默认常数项为0

%多项式的拟合
clc;
clear all;
x=[0.2 0.3 0.5 0.6 0.8 0.9 1.2 1.3 1.5 1.8]  
y=[1 2 3 5 6 7 6 5 4 1]
p5=polyfit(x,y,5)
y5=polyval(p5,x)
p5=vpa(poly2sym(p5),5)%显示5阶多项式
p9=polyfit(x,y,9)
y9=polyval(p9,x)
p9=vpa(poly2sym(p9),9)%显示9阶多项式 
figure;
plot(x,y5)
hold on
plot(x,y)
plot(x,y9)


  %%最小二乘法拟合直线
clear all;
x=[1.2 3.4 4.5 6.3 7.1 8.2 9.5 10.3 13.3]
figure;
plot(x,'b*')
h=lsline

%%正态分布的概率图'
clear all;
x=normrnd(0,1,100,1)
figure
h=normplot(x)

%经验累积分布函数
clear all;
x=normrnd(0,1,100,1)
figure
h=cdfplot(x)

%威布尔概率图
clear all;
x=wblrnd(1,2,50,1)
y=wblrnd(3,8,50,1)    
a=[x y]
h=wblplot(x)
%分位数  分位数图
clear all;
x=normrnd(1,2,50,1)
y=normrnd(3,8,50,1)  
figure
h1=qqplot(x)
figure
h2=qqplot(x,y)

%%添加参考线
clear all;
x=[1.2 3.4 4.5 6.3 7.1 8.2 9.5 10.3 13.3]  
figure
plot(x,'r-')
h=refline(1,0.1)            %%斜率为1  截距为0.1

%%添加多项式曲线
clear all;
x=[1.2 3.4 4.5 6.3 7.1 8.2 9.5 10.3 13.3]  
figure
plot(x,'r+')
p=[-1 7 3]
h=refcurve(p)   

%%插值
clc
clear all;
x=0:0.2:2;
y=(x.^2-3*x+5).*exp(-3*x).*sin(x);
xi=0:0.03:2;                            %要插值的数据
yi_nearest=interp1(x,y,xi,'nearest')    %临近点插值
yi_linear=interp1(x,y,xi)               %默认为线性插值
yi_spine=interp1(x,y,xi,'spine')        %三次样条插值
yi_pchip=interp1(x,y,xi,'pchip')        %分段三次1ermite插值
yi_v5cubic=interp1(x,y,xi,'v5cubic')    %MATLAB5中三次多项式插值
figure
hold on
plot(xi,yi_nearest)
plot(xi,yi_linear)
plot(xi,yi_spine)
plot(xi,yi_pchip)
plot(xi,yi_v5cubic)

%%采用一维快速傅里叶插值
clc
clear all;
x=0:1.1:8;
y=sin(x)
n=2*length(x)           %%增采样1倍
yi=interpft(y,n)        %采用一维快速傅立叶插值
xi=0:0.55:8.3;          %要插值的数据
figure;
hold on;
plot(x,y,'ro',xi,yi,'b-')
legend('原始值','插值后')

%%三次样条插值
clc
clear all;
x=0:10;    %原始数据
y=sin(x);
xi=0:0.25:10        %插值数据
yi=spline(x,y,xi)       %三次样条插值
pp=spline(x,y)          %产生插值函数
y1=ppval(pp,xi)         %结果相同y1=yi
y2=interp1(x,y,xi,'spline')     %结果相同y2=yi 
figure 
plot(x,y,'o',xi,yi)
legend('原始值','插值后')

%%极限
clc
clear all;
syms x
f=(3*x^2-1)/(3*x^2-2*x+3)
y=limit(f,x,1)              %趋近于1时

%%拉格朗日插值
clear all;
x=[0.1 0.2 0.15 0 -0.2 0.3];
y=[0.95 0.84 0.86 1.06 1.5 0.72]
xi=-0.2:0.01:0.3;
yi=Lagrange(x,y,xi)
figure;
plot(x,y,'o',xi,yi,'k')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值