Matlab 阶段性心得

Matlab Handbook

 

size :获取数组的行数和列数

length :数组长度(即行数或列数中的较大值)

1. 求最大值

 

[y,idx]=max(A) 可以达到你的目的。 idx 就是最大值的位置

 

2. matlab 画出概率密度分布图

 

比方说 , 你的数据在 y 这个数 组中 .
y=rand(1,3000)
ymin=min(y);
ymax=max(y);
x=linspace(ymin,ymax,20); %
将最大最小区间 分成 20 个等分点 (19 等分 ), 然后分别计算各个区间的个数
yy=hist(y,x); %
计算各个区间的个数
yy=yy/length(y); %
计算各个区间的个数
bar(x,yy) %
画出概率密度分布图

s=0
for i=2:length(x)
s=[s,trapz(x([1:i]),yy([1:i]))];
end
figure;
plot(x,s,x,s,'*')

 

3. 曲线拟合

 

function Poly=Poly_Predict(A,vector);

x=[0:1:(vector-1)];

n10=4;

p10=polyfit(x,A,n10);    % 十阶拟合

Poly=polyval(p10,vector);

 

4 ,写文件

dlmwrite('myfile.txt', wq);


 

 

5,(matlab)plot 画图的颜色线型 (2007-05-16 15:53:23)

 

字母         颜色           标点            线型
     y         
黄色            ·              点线
     m         
粉红                          圈线
     c         
亮蓝            ×             × 线
     r         
大红                         +字线  
     g         
绿色                          实线
     b         
蓝色            *               星形线
     w         
白色                         虚线
     k         
黑色          ·  (--)        点划线

matlab6.1 线形:
[ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram ]

    square           正方形
    diamond       
菱形
    pentagram    
五角星
    hexagram     
六角星

plot(x,angle_real,'k',x,angle,'b-.',x,plr,'r-..',x,class,'g--')

7. 循环语句如何画三根不同颜色的曲线?

 

c={'o-r','g-*','s-b'}
a=1:100;
for i=1:3
     b=sin(a)+i;
     plot(a,b,c{i}) ;

hold on
end

 

8  Matlab 下面有
p=normpdf(x,miu,sigma)
是求出 x 处的 概率密度。
p=normcdf(x,miu,sigma)
是求出 X<x 的累积概率密度 ( 就是从负无穷大到 x 处的概率密度的积分 )
我给定一个区间,这个区间外的概率我认为是 0 (这一点不够严谨,理论上应当是从负无穷到正无穷)

 

 

9   计算数据的概率密度,并画图

[a1 a2]=textread('ktext.txt','%n %n');% 加载数据到 a1 a2

a1=a1';% 真实值

n=length(a1);

x=linspace(0,0.4,20); % 将最大最小区间分成 200 个 等分点 (19 等分 ), 然后分别计算各个区间的个数 // 测量概率密度的 统计间隔很重要。

yy=hist(a1,x); % 计算各个区间的个数

yy=yy/length(a1); % 计算各个区间的个数

plot(x,yy,'-'); % 画出概率密度分布图

 

hold on

[a1 a2]=textread('ktext.txt','%n %n');

a1=a1';

x=0:0.01:0.4;

yy=hist(a1,x); % 计算各个区间的个数

yy=yy/length(a1); % 计算各个区间的个数

plot(x,yy,'--.')

 

 

10 function 函数里面读取数据到 workspace

 

save var.mat plr plr_real;

 

workspace 中: load('var.mat','plr_real')

load('kal.mat','angle','angle_real')

load('var.mat','class','class_real')

load('gau.mat','plr','plr_real')

                                      

 

std(angle-angle_real)

std(plr-angle_real)

std(class-angle_real);

mean(abs(angle-angle_real))

mean(abs(plr-angle_real))

mean(abs(class-angle_real))

 

std(angle-angle_real)/std(angle_real)

std(plr-angle_real)/std(angle_real)

std(class-angle_real)/std(angle_real);

mean(abs(angle-angle_real))/mean(angle_real)

mean(abs(plr-angle_real))/mean(angle_real)

mean(abs(class-angle_real))/mean(angle_real)

 

 

 

 

 

 

 

 

 

load('kal.mat','angle','angle_real','a','b')

 

w=[mean(abs(angle-angle_real))

mean(abs(angle-angle_real))/mean(angle_real)

std(angle-angle_real)

std(angle-angle_real)/std(angle_real)]

 

 

a10=a;

b10=b;

angle10=angle;

angle10_real=angle_real;

 

a20=a;

b20=b;

angle20=angle;

angle20_real=angle_real;

 

a30=a;

b30=b;

angle30=angle;

angle30_real=angle_real;

 

a40=a;

b40=b;

angle40=angle;

angle40_real=angle_real;

 

 

 

load('gau.mat','plr','plr_real')

 

 

a=[mean(abs(plr-plr_real))

mean(abs(plr-plr_real))/mean(plr_real)

std(plr-plr_real)

std(plr-plr_real)/std(plr_real)

]

 

 

load('var.mat','class','class_real')

 

a=[mean(abs(class-class_real))

mean(abs(class-class_real))/mean(class_real)

std(class-class_real)

std(class-class_real)/std(class_real)

]

 

load('gau.mat','plr','plr_real')

 

a=[mean(abs(plr-plr_real))

mean(abs(plr-plr_real))/mean(plr_real)

std(plr-plr_real)

std(plr-plr_real)/std(plr_real)

]

 

原帖地址:http://blog.sina.com.cn/s/blog_57bc337d0100e15p.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值