matlab总结1_matlab总结
matlab总结1由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“matlab总结”。
1、matlab中离散的点拟画成连续曲线形式的图形,使用spline(xx,yy)函数
2、如果想在一副图片里画多个图,就不要使用figure,而是在plot后面,hold on3、在曲线上加上标注,用text(x,y,'string')
4、在图框的部分加入每条曲线的描述legend(‘Extended DynamiCS’,‘DynamiCS’)
5、plot(x,num(i,:));%这里面的num(i,:)其实就是代表每一个excel中的行
6、[num, txt]= xlsread('采样数据.xls', 'B:BA');代表excel中的数据从B列到BA列,这在5中的num中的参数进行赋值,其中第一个 表示哪一行,:表示从第一列到最后一列。
7、设计到excel中必须使用for循环的形式,因为每次是对一行数据进行的处理。在结尾处要用到end 8 读取excel中数据问题
(1).用matlab从excel中读取数据
例:excel表的文件名为book1.xls,存放在E: 读取命令:data = xlsread('E:book1');
如果读取数值的同时想读取excel中的文字可以使用下面的命令: [data,text] = xlsread('E:book1');
(2).用matlab将数据写入excel(3)读间隔的几列。
xlswrite(filename, M, sheet, range)(3)[NUM,TXT,RAW]=xlsread(FILE)(4)读取指定目录的文件[num, txt]= xlsread('C:UsersAdministratorDesktop新建文件夹WeightLog_20140219.xls', 'C:D')
如果想要读取其中的某一行,则比如,读取D行,则D:D形式
表示取出来的数据,数值放在数组NUM中,文本放在Txt中,其它放在RAW中; 后面xlsread()中的参数,可以 9 取数组的某一行
b=data(i,:);这里i表示取数组的某一行,然后用“,”隔开,后面的内容表示列数,其中“:”表示从多少到多少,如果两边都不写,表示从开始到结束 同样也可以取特定的列的行数 b=data(:,i)
且这里的i为从1到多少开始,并不是传统数组中的0表示第一行,这里是1表示第一行 10 打开网格
如果画图时候,想要打开网格显示,在plot等下面要写上 grid on 11 yy=spline(x,y,xx);其中xx为步长(或者插值间隔)
这个函数将x,y离散的数据,通过样条插值取出xx的yy处的值。12 size():获取矩阵的行数和列数
(1)s=size(A), 当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。(2)[r,c]=size(A), 当有两个输出参数时,size函数将矩阵的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c。
(3)size(A,n)如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的时矩阵A的行数,c=size(A,2)该语句返回的时矩阵A的列数。另外,length()=max(size()).13、ones()ones产生全1矩阵
>> ones(3,4)
ans = 14 zeros 产生全0的矩阵
>> zeros(1,3)
ans =
0
0
015、net=newff(minmax(P'),[5,2,1],{'tansig','tansig','purelin'},'trainrp');
其中第一个表示输入向量的最大最小值。这里面应用到转置,因为输入向量是将输入参数一次输入n个,然后一次类推。第二个参数是每一层神经元的个数,第三个是每一层的传递函数,有几层就有几个传递函数,从输出层到输出要有传递函数的一般是线性。
16、求矩阵的最大值
max(a,[],dim)
这个函数的意思是针对于2维矩阵的,dim是英文字母dimension的缩写,意思是维数。当dim=1时,比较的a矩阵的列,也就是和max(a)的效果是一样的;当dim2时,比较的是a矩阵的行。下面举个例子 a=[1,2,3;4,5,6]
max(a)=max(a,[],1)=[4,5,6] 比较的第一行和第二行的值 max(a,[],2)=[3,6]
17、求矩阵的非零元素的个数
sum(a~=0,2)一行中非零元素的个数,结果返回的是一个列向量。
sum(a~=0)找出一列中非零元素的个数,结果返回的是行。
sum(a),是求和,即矩阵中对应列元素求和,最后返回的是行
sumsqr(a)矩阵中元素平方,然后在求和,如果是多行,那么最后返回一行。
18提取数组的非零元素
由于矩阵的每一行的非0元素个数并不相同,因此不存在提取非0元素之后重新组成矩阵,只可以对其中的每一行或者每一列单独操作。
A=a(a~=0)或者a=nonzeros(a)’
中位值用median(a)或者median(a,2)
19,求离散序列的极值。
>> aa=randperm(20)aa =13 17 7 19 18 14 8 11 2 20 3 6 4 15 1 12 10 5 9 >> bb=intersect(find(diff(aa)>0)+1,find(diff(aa)
20标准差(均方差)
均方误差(mean squared error,均方误差是各数据偏离平均数的距离平方的平均数
是方差的平方根,matlab中没有直接求方差的,因此需要先求均方差,然后再平方求得方差。Std(a),如果a是一维向量,那么就可以直接求。如果是多行的,那么就表示求得是一列一列的。
Std(a,0,2)表示求得每一行的标准差。中间一个如果是0,则表示除以n-1,如果是1,则表示除以n Var:
要注意的是var函数所采用公式中,分母不是,而是。这是因为var函数实际上求的并不是方差,而是误差理论中“有限次测量数据的标准偏差的估计值求极值点并且作图
离散数据的求导,一般是采用前向差分的方法,例如x(k)-x(k-1)
如果离散数据的长度为N,则求出来倒数的长度为N-1; 例如:
>> f=[1 2 3];>> diff(f)
ans =
Sign(x),如果x大于0,则返回1;
如果x的每一个元素小于0,则返回-1;
如果x的元素等于0,则返回0。
Diff函数,如果x是多行多维的矩阵,那么diff(a)是从最后一行开始减去上一行,计算完成后,第一行消失,行数减1.只有一行的时候,从最后一列开始往前减,第一列消失。极小值点:
Idmax=find(diff(sign(diff(a)))
Idmin=find(diff(sign(diff(a)))>0)+1;极小值点 Ind=find(diff(sign(diff(a)))~=0)+1;
极值点 Plot(x,y,x(ind),y(ind))其中y(ind)表示对应的值。
C=a(find(a==0));找出a==0的点,并且找出找出值,如果是多行矩阵的话,由于每一行的参数不一定相同,因此只返回一列。一般是对单行矩阵操作。如果没有,则返回NaN