matalb自己笔记.docx
- 文档编号:4866195
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:9
- 大小:38.06KB
matalb自己笔记.docx
《matalb自己笔记.docx》由会员分享,可在线阅读,更多相关《matalb自己笔记.docx(9页珍藏版)》请在冰豆网上搜索。
matalb自己笔记
Sum函数用法:
B=sum(A)
返回数组A不同维数的总和。
如果A是一个向量,sum(A)返回所有元素的总和。
如果A是一个矩阵,sum(A)把A的列作为向量,返回一个包含每一列所有元素的总和的行向量。
如果A是一个多维数组,sum(A)把没一维看做一个数组,返回一个行向量数组。
B=sum(A,dim)book.iLoveM
沿着A的每一维计算总和用指定标量dim,dim是一个从1到N的整数值,其中N是A的维数。
dim为1就是计算A的每一列的总和,2计算A的每一行的总和,以此类推。
B=sum(...,'double')和B=sum(...,dim,'double')
在双精度下(double)执行相加求和,返回double类型的结果,即使A是single数据类型或者integer数据类型。
默认的是integer数据类型。
B=sum(...,'native')和B=sum(...,dim,'native')
在native数据类型下执行相加求和,返回相同类型的结果,默认的是single和double.数据类型。
sum(a)是列求和
sum(a,2)是行求和
一般就是double型的,要是全矩阵求和,sum(sum(a))
使matlab不用科学计数法输出结果
Matlab在数字大于1000或者小于1时会自动用科学计数法来输出。
有时候这种输出方法很讨厌,可以在format命令后加一个g来停用科学计数法。
例如
>>formatlongg
命令 相关系数
函数 corrcoef
格式 corrcoef(X,Y) %返回列向量X,Y的相关系数,等同于corrcoef([X Y])。
corrcoef(A) %返回矩阵A的列向量的相关系数矩阵
例4-48
>>A=[123;40-1;139]
A=
1 2 3
4 0 -1
1 3 9
>>C1=corrcoef(A) %求矩阵A的相关系数矩阵
C1=
1.0000 -0.9449 -0.8030
-0.9449 1.0000 0.9538
-0.8030 0.9538 1.0000
MATLAB中均值、方差、均方差的计算方法
分类:
Matlab图像处理2010-04-0611:
05 6376人阅读 评论(5) 收藏 举报
matlab
经常要用到,系统整理了一下。
1、 均值
数学定义:
Matlab函数:
mean
>>X=[1,2,3]
>>mean(X)=2
如果X是一个矩阵,则其均值是一个向量组。
mean(X,1)为列向量的均值,mean(X,2)为行向量的均值。
>>X=[123
456]
>>mean(X,1)=[2.5,3.5,4.5]
>>mean(X,2)=[2
5]
若要求整个矩阵的均值,则为mean(mean(X))。
>>mean(mean(X))=3.5
也可使用mean2函数:
>>mean2(X)=3.5
median,求一组数据的中值,用法与mean相同。
>>X=[1,2,9]
>>mean(X)=4
>>median(X)=2
2、 方差
数学定义:
均方差:
Matlab 函数:
var
要注意的是var函数所采用公式中,分母不是 ,而是 。
这是因为var函数实际上求的并不是方差,而是误差理论中“有限次测量数据的标准偏差的估计值”。
>>X=[1,2,3,4]
>>var(X)=1.6667
>>sum((X(1,:
)-mean(X)).^2)/length(X)=1.2500
>>sum((X(1,:
)-mean(X)).^2)/(length(X)-1)=1.6667
var没有求矩阵的方差功能,可使用std先求均方差,再平方得到方差。
std,均方差,std(X,0,1)求列向量方差,std(X,0,2)求行向量方差。
>>X=[12
34]
>>std(X,0,1)=1.4142 1.4142
>>std(X,0,2)=0.7071
0.7071
若要求整个矩阵所有元素的均方差,则要使用std2函数:
>>std2(X)=1.2910
MATLABminmax()函数
(2012-05-2013:
56:
48)
转载▼
标签:
杂谈
分类:
MATLAB学习
>>A=[124-6;3-4906;46-23-35];
>>P=minmax(A)
P=
-64
-490
-356
%minmax(A)即是求解A矩阵中每个行向量中最小值和最大值
超定方程可以用左除方式求解。
ind=[1323]
ind=
1323
>>vec=ind2vec(ind)
vec=
(1,1)1
(3,2)1
(2,3)1
(3,4)1
>>a=[1000;0010;0101]
a=
1000
0010
0101
>>isequal(a,vec)
ans=
1
稀疏矩阵:
矩阵中非零元素的个数远远小于矩阵元素的总数),并且非零元素的分布没有规律,则称该矩阵为稀疏矩阵(sparsematrix);与之相区别的是,如果非零元素的分布存在规律(如上三角矩阵、下三角矩阵、对称矩阵),则称该矩阵为特殊矩阵。
h1=axes('pos',[0.2,0.2,0.6,0.4]),什么意思?
就是设置axes的位置,左下宽高,单位是和整个figure宽高的比例
四个数依次是坐标左下角起点坐标和长度,宽度。
句柄,是整个windows编程的基础。
一个句柄是指使用的一个唯一的整数值,即一个四字节长的数值,来标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。
应用程序能够通过句柄访问相应的对象的信息,但是句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。
如果句柄不用在I/O文件中,它是毫无用处的。
句柄是windows用来标志应用程序中建立的或是使用的唯一整数,windows使用了大量的句柄来标志很多对象。
plot()、fplot()、ezplot()理解
函数plot是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。
也就是说,使用plot 函数之前,必须首先定义好曲线上每一点的x 及y 坐标,常用格式为:
(1)plot(x) 当x 为一向量时,以x 元素的值为纵坐标,x 的序号为横坐标值绘制曲线。
当x 为一实矩阵时,则以其序号为横坐标,按列绘制每列元素值相对于其序号的曲线,当x 为m× n 矩阵时,就有n 条曲线。
(2)plot(x,y) 以x 元素为横坐标值,y 元素为纵坐标值绘制曲线。
(3)plot(x,y1,x,y2,…) 以公共的x 元素为横坐标值,以y1,y2,… 元素为纵坐标值绘制多条曲线。
函数fplot 用来绘制数学函数,其调用格式为:
fplot(fun,lims)其中fun 就是所要绘制的函数,可以是定义函数的M 文件名,也可以是以x 为变量的可计算字符串,lims=[XMIN XMAX YMIN YMAX]限定了x,y 轴上的绘图空间。
函数ezplot的功能最为强大,它可以像fplot函数那样给出函数和定义域,它也可以无需数据准备,直接画出函数图形,基本调用格式为ezplot(f),其中f 是字符串或代表数学函数的符号表达式,只有一个符号变量。
区别:
(1)plot是绘制二维图形,并且是x,y的表达式是已知的或者是形如y=f(x)这样确切的表达式,而ezplot是画出隐函数图形,是形如f(x,y)=0这种不能写出像y=f(x)这种函数的图形。
(2)plot在同时画多条曲线并以不同的元素形状和颜色进行区分方面比较方便,ezplot和fplot函数在这方面不是很好。
(3)形如代码:
会报错,是因为plot是针对向量或者矩阵进行绘制曲线的,而t这里只是个字符,没有定义对应向量。
而在ezplot函数中执行:
ezplot(y);就是可以的,会自动选择参数t的范围。
这里还是要强调区别,在执行plot()函数时,参数中的自变量要是向量或矩阵,而ezplot()函数的参数就直接是字符,然后可以在参数中规定范围,相当于一个连续的自变量。
这样带来的问题是,要画的曲线函数表达式中有关自变量的乘(*)、除(/)和次方(^)等操作时,要注意表达式的写法。
用plot()函数画时,因为是向量或矩阵,需要的是点乘(.*)、点出(./)和点次方(.^)。
二用ezplot()时就不需要这个。
plot(x1,y1,'o',x2,y2)是将(x1,y1)的散点标注在(x2,y2)的图像上,
functionnew_fig_handle=shift_axis_to_origin(fig_handle)
%本函数目的是把matlab做的图坐标轴移到图形的中间部分去(与数学的做图习惯一致)
%2008.10.10inpku
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure('Name','shift_axis_to_origin','NumberTitle','off') %Createanewfigure
%拷贝图形到一个新的窗口
new_fig_handle=copyobj(fig_handle,gcf);
xL=xlim;
yL=ylim;
xt=get(gca,'xtick');
yt=get(gca,'ytick');
set(gca,'XTick',[],'XColor','w');
set(gca,'YTick',[],'YColor','w');
%把x和y坐标轴的两个方向各延长10%(为了视觉上好看)
extend_x=(xL
(2)-xL
(1))*0.1;
extend_y=(yL
(2)-yL
(1))*0.1;
xxL=xL+[-extend_xextend_x];
yyL=yL+[-extend_yextend_y];
set(gca,'xlim',xxL);
set(gca,'ylim',yyL);
pos=get(gca,'Position');
boxoff;
x_shift=abs(yyL
(1)/(yyL
(2)-yyL
(1)));
y_shift=abs(xxL
(1)/(xxL
(2)-xxL
(1)));
temp_1=axes('Position',pos+[0,pos(4)*x_shift,0,-pos(4)*x_shift*0.99999]);
xlim(xxL);
boxoff;
set(temp_1,'XTick',xt,'Color','None','YTick',[]);
set(temp_1,'YColor','w');
temp_2=axes('Position',pos+[pos(3)*y_shift,0,-pos(3)*y_shift*0.99999,0]);
ylim(yyL);
boxoff;
set(temp_2,'YTick',yt,'Color','None','XTick',[]);
set(temp_2,'XColor','w');
Base_pos=get(new_fig_handle,'Position');
arrow_pos_in_x_dircetion=Base_pos
(2)-Base_pos(4)*yyL
(1)/(yyL
(2)-yyL
(1));
arrow_pos_in_y_dircetion=Base_pos
(1)-Base_pos(3)*xxL
(1)/(xxL
(2)-xxL
(1));
annotation('arrow',[Base_pos
(1),Base_pos
(1)+Base_pos(3)],[arrow_pos_in_x_dircetion,arrow_pos_in_x_dircetion],'Color','k');
annotation('arrow',[arrow_pos_in_y_dircetion,arrow_pos_in_y_dircetion],[Base_pos
(2),Base_pos
(2)+Base_pos(4)],'Color','k');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
下面是一个例子:
%本程序目的是把matlab做的图坐标轴移到图形的中间部分去(与数学的做图习惯一致)
%2008.10.08
%
clc;clear;closeall;
t=linspace(-2,8,100);
a1=axes;
plot(t,cos(t));
%xt=get(gca,'xtick');
%set(gca,'XTick',[],'XColor','w');
%xL=xlim;
%p=get(gca,'Position');
%boxoff;
%a2=axes('Position',p+[0,p(4)/2,0,-p(4)/2]);
%xlim(xL);boxoff;
%set(gca,'XTick',xt,'Color','None','YTick',[]);
new_fig_handle=shift_axis_to_origin(gca);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
此例子的实现效果如下两个图所示:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matalb 自己 笔记