文档库 最新最全的文档下载
当前位置:文档库 › 04第4讲 Matlab的数据处理

04第4讲 Matlab的数据处理

04第4讲 Matlab的数据处理
04第4讲 Matlab的数据处理

第4讲Matlab的数据处理

司守奎

烟台市,海军航空工程学院数学教研室

Email:sishoukui@https://www.wendangku.net/doc/a74549995.html,

Matlab数据类型有以下几种:数值类型,字符串,日期和时间,结构数组,细胞数组(元胞数组),函数句柄,Java对象,逻辑类型等.

数值类型包括双精度浮点型,单精度浮点型,整型类型. 下面我们简单介绍细胞数组与结构数组,并主要给出数值类型数据的操作.

4.1 细胞数组与结构数组

4.1.1 细胞数组

细胞数组是Matlab中的一类特殊的数组. 在Matlab中,由于有细胞数组这个数据类型,才能把不同类型、不同维数的数据组成为一个数组.

1.细胞数组的创建

细胞数组的创建有两种方法:通过赋值语句或cell函数创建.

(1)使用赋值语句创建细胞数组:细胞数组使用花括号“{}”来创建,使用逗号“,”或空格分隔同一行的单元,使用分号“;”来分行.

(2)使用cell函数创建空细胞数组.

例4.1 创建细胞数组.

clc, clear %以下构造4个细胞数组

A={'x', [2;3;6]; 10, 2*pi}

B=cell(2,2)

C={{'LiMing','LiHong'},{'0101','0102'}; {'f','m'},{[90,80],[88,80]}}

fprintf('显示C{2,2}{1}的元素:'), C{2,2}{1}

fprintf('显示C{2,2}{2}的元素:'), C{2,2}{2}

fprintf('显示细胞数组C{2,2}所有元素(两个元素)的值:'), C{2,2}{:}

fprintf('以下显示细胞数组C的全部元素:\n')

celldisp(C)

fprintf('细胞数组C的全部元素显示完毕!\n')

-144-

D={A{:},B{:}} %把A和B合并成一个细胞数组

2.细胞数组的操作

Matlab提供的与细胞数组有关函数如表4-1所示.

表4-1 细胞数组的有关函数

例4.2 细胞数组操作示例.

clc, clear

a={1, [2 3 4]; [5;9], [6 7 8; 10 11 12]} %建立细胞数组

b=cell2mat(a) %将细胞数组合并成矩阵,注意维数必须匹配,否则出错,见下面的转换

c={1,rand(2,3);rand(3),rand(4)}

try, d=cell2mat(c), catch, fprintf('维数不匹配,无法转换!'),end

e=randi([1,9],4,5) %生成取值为{1,2,…,9}的4×5随机整数矩阵

f1=mat2cell(e,[2,2],[3,2]) %将e拆分成2×2的细胞数组

f2={e} %将e转换成1个元素的细胞数组

subplot(121), cellplot(f1) %显示f1结构图

subplot(122), cellplot(f2) %显示f2结构图

例4.3已知11个地点的位置坐标如表4-2所示,画出这11个点的位置并进行标注.

表4-2 地点名称及坐标数据

把表4-2中的数据保存在Excel文件eq_data3_3.xls中,执行如下命令

-145-

[a,b]=xlsread(eq_data3_3.xls)

则返回值a读入的是数值矩阵,b读入的字符串的细胞数组,但a,b中有些特殊数据要额外进行处理.

clc, clear

[a,b]=xlsread('data3_3.xls')

a=[a(:,[1,2]);a([1:end-1],[4,5])]; %提取需要的数据

b={b{:,1},b{[1:end-1],4}} %提取非空字符串,构造新的字符串细胞数组

plot(a([1:3],1),a([1:3],2),'P') %画前3个点

hold on, plot(a([4:end],1),a([4:end],2),'*') %画其余点

text(a(:,1)+5,a(:,2),b) %对所有的点进行标注

画出的11个地点的示意图见图4-1.

图4-1 位置示意图

说明:Matlab中网络图的顶点字符串等,都要求是细胞数组字符串.

4.1.2 结构数组

有时需要将不同的数据类型组合成一个整体,以便于引用. 这些组合在一个整体中的数据是相互联系的. 例如,一个学生的学号、姓名、性别、年龄、成绩、家庭地址等项都是和该学生有联系的.

Matlab与其它高级语言一样具有结构类型的数据. 结构类型是包含一组彼此相关、数据结构相同但类型不同的数据类型. 结构类型的变量可以是任意一种Matlab数据类型的变量,也可以是一维的、二维的或者多维的. 但是,在访问结构类型数据的元素时,需要使用下标配合域名的形式.

1.结构数组的建立

Matlab提供两种方法建立结构数组,用户可以直接给结构数组成员变量赋值建立结构数组,也可以利用函数struct建立结构数组.

-146-

例4.4利用赋值建立结构数组.

clc, clear

stu(1).name='LiMing'; stu(1).number='0101';

stu(1).sex='f'; stu(1).score=[90,80];

stu(2).name='LiHong'; stu(2).number='0102';

stu(2).sex='m'; stu(2).score=[88,80];

stu %显示结构数组的结构

stu(1) %显示结构数组第1个元素

stu(2) %显示结构数组第2个元素

例4.5利用函数struct建立结构数组,并对两个结构数组进行连接.

clc, clear

stu=struct('name',{'LiMing','LiHong'},'number',{'0101','0102'},...

'sex',{'f','m'},'score',{[90,80],[88,80]})

stu2=[stu,stu] %对两个结构数组进行连接

name1=stu2(4).name %提取结构数组stu2的第4个元素的name域的值

name2={https://www.wendangku.net/doc/a74549995.html,} %提取结构数组stu2的name域的所有取值,构成细胞数组2.结构数组的操作

Matlab提供的与结构数组有关函数如表4-3所示.

表4-3 结构数组的有关函数

例4.6结构数组的操作.

clc, clear

stu=struct('name',{'LiMing','LiHong'},'number',{'0101','0102'},...

'sex',{'f','m'},'score',{[90,80],[88,80]})

a=fieldnames(stu) %获取stu所有域名

-147-

b1=getfield(stu,'number') %获取第1个元素的number域的值

b2=getfield(stu,{2},'number') %获取第2个元素的number域的值

c=isfield(stu,'sex') %判断sex是否为stu中的域

stunew=orderfields(stu) %按结构数组域名首字符重新排序

rmfield(stu,'sex') %删除sex域

例4.7结构数组和细胞数组的相互转化.

clc, clear

s_cell={'LiMing','0101','M',20;'ZhangSan','0102','F',30} %建立细胞数组

fields={'name','number','sex','age'} %建立细胞数组

s_struct=cell2struct(s_cell,fields,2) %沿第2维方向,将细胞数组转换成结构数组t_struct=struct('name',{'LiMing','LiHong'},'number',{'0101','0102'},...

'sex',{'f','m'},'age',{20,19}) %构造结构数组

t_cell=struct2cell(t_struct) %将4个域的结构数组转换成4×1×2的细胞数组

Matlab命令

f=dir('*.m')

可以显示当前目录下所有后缀名为m的文件信息,返回值f是一个结构数组,包

括5个域:name,date,bytes,isdir,datenum;通过结构数组的元素个数就可以

知道当前目录下m文件的个数,通过name域可以知道当前目录下所有m文件的

名称.

dir命令可以读出所有类型文件的信息.

例4.8读入当前目录下所有的后缀名为bmp的图片文件,并把数据保存在细

胞数组中.

clc, clear

f=dir('*.bmp'); %读入当前目录下所有bmp图像文件的信息,保存在结构数组f中n=length(f) %计算bmp文件的个数

for i=1:n

a{i}=imread(f(i).name);%把第i个bmp图像数据保存在细胞数组中的第i个元素中end

一些Matlab函数的返回值也是结构数组. Matlab求微分方程数值解的命令-148-

-149-

ode45也可以返回结构数组,ode45用龙格库塔方法求一阶微分方程或微分方程组的数值解.

对一阶微分方程或方程组的初值问题 0

0'(,),

(),y f t y y t y =??

=?

其中y 和f 可以为向量. 函数ode45有如下两种调用格式:

[t,y]=ode45(fun,tspan,y0) 或 s=ode45(fun,tspan,y0)

其中fun 是用M 函数或匿名函数定义的(,)f t y ,tspan=[0t ,tfinal](这里0t 必须是初值条件中自变量的取值,tfinal 可以比0t 小)是求解区间,y0是初值. 返回值t 是matlab 自动离散化的区间[0t ,tfinal]上的点,y 的列是对应于t 的函数值;如果只有一个返回值s ,则s 是一个结构数组.

利用结构数组s 和Matlab 函数deval ,我们可以计算任何感兴趣点x 的函数值,调用格式为

y=deval(s,x)

其中x 为标量或向量,返回值y 的行是对应于x 的数值解.

例4.9 求2212'''()0,2,'422x y xy x y y y πππ????

++-===- ? ?????

在区间[,8]2π上步长间隔为

0.01的数值解.

若用Matlab 工具箱求数值解,微分方程(或方程组)必须是一阶的,首先做变量替换,把上述二阶微分方程化成一阶方程组,令1y y =,2'y y =,则有

12122

122', ()2,2

12'(1),().24y y y y y y y x x πππ?==???

?=---=-??

求解的Matlab 程序如下: clc, clear

dy=@(x,y)[y(2);-y(2)/x-(1-1/4/x^2)*y(1)];

[x1,y1]=ode45(dy,[pi/2,8],[2;-2/pi]) %返回值y1是两列的矩阵,y1(:,1)对应y 的值,y1(:,2)对应y 的导数值,所求的数值解不符合题目的要求

s=ode45(dy,[pi/2,8],[2;-2/pi]) x2=pi/2:0.01:8;

y2=deval(s,x2) %返回值y2是两行的矩阵,y2(1,:)对应y的值,y2(2,:)对应y的导数值subplot(121),plot(x1,y1(:,1)),subplot(122),plot(x2,y2(1,:)) %两种格式比较

4.2文件

根据数据的组织形式,Matlab中的文件可分为ASCII文件和二进制文件. ASCII

文件又称文本文件,它的每一个字节存放一个ASCII代码,代表一个字符. 二进制

文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放.

Matlab中的关于文件方面的函数和C语言相似,见表4-4.

表4-4 Matlab的文件操作命令

4.2.1 文件的打开和关闭

对文件读写之前应该“打开”该文件,在使用结束之后应“关闭”该文件.

函数fopen用于打开文件,其调用格式为:

fid=fopen(filename,permission)

fid是文件标识符(file identifier),fopen指令执行成功后就会返回一个正的fid 值,如果fopen指令执行失败,fid就返回-1.

filename是文件名.

permission是文件允许操作的类型,可设为以下几个值:

…r?只读

…w?只写

…a? 追加(append)

…r+? 可读可写

-150-

与fopen对应的指令为fclose,它用于关闭文件,其指令格式为:

status=fclose(fid)

如果成功关闭文件,status返回的值就是0.

说明:一定要养成好的编程习惯,文件操作完之后,要关闭文件,即释放文件

句柄,如果不关闭句柄,还占用内存空间,如果打开的文件数量太多,内存会溢出的.

4.2.2 文件的读写操作

1.二进制文件的操作

写二进制文件的函数fwrite,其调用格式为

fwrite(fileID,A,precision)

其中fileID为文件句柄,A是要写入文件的数组,precision控制所写数据的精度,

默认的是无符号整数“uint8”格式.

读二进制文件的函数fread,其调用格式为

[A,count]=fread(fileID,sizeA,precision)

其中,A是用于存放读取数据的矩阵,count是返回所读取的数据元素个数;fileID

是文件句柄;size为可选项,若不选用则读取整个文件内容,若选用则它的值可以

是下列值:N(读取N个元素到一个列向量)、inf(读取整个文件)、[m,n](读数

据到m×n矩阵中,数据按列存放);precision控制所读数据的精度.

例4.10把向量[1,2,…,9]写入二进制文件,然后再读出来.

clc, clear

f1=fopen('nine.bin','w') %新建二进制文件nine.bin,返回句柄f1

fwrite(f1,[1:9]) %写入整数1,2,…,9

flag=fclose(f1) %关闭文件

f2=fopen('nine.bin','r') %以只读的格式打开已经建立的二进制文件

A=fread(f2) %读取二进制文件中的全部数据

2.文本文件的操作

把数据写入文本文件的函数为fprintf,其调用格式为

fprintf(fileID,format,A1,…,An)

其中fileID为文件句柄,A1,…,An是要写入文件的数组,format控制所写数据

-151-

的格式.

fprintf(format,A1,…,An)

把数组A1,…,An以format指定的格式显示在屏幕上.

从文本文件读数据的函数为fscanf,其调用格式为

A=fscanf(fileID,formatSpec,sizeA)

该函数从句柄fileID所指向的文本文件,按照指定的格式formatSpec,读入SizeA 大小的数据,赋给数组A.

例 4.11 把温度数据字符串'78℉,72℉,64℉,66℉,49℉,50℉'写入文本文件temperature.dat中,然后再读取其中的数值数据.

clc, clear

str='78℉,72℉,64℉,66℉,49℉,50℉';

fid1=fopen('temperature.dat','w'); %新建temperature.dat文件

fprintf(fid1,'%s',str); %向文件temperature.dat中写入字符串数据

fclose(fid1);

fid2=fopen('temperature.dat','r'); %以只读的格式打开temperature.dat文件data=fscanf(fid2,'%d℉,') %读取其中的数值数据

例4.12把数据加上表头,以表格的形式写到纯文本文件中,然后再读取其中的数值数据.

clc, clear

x=0:0.1:1; A=[x;exp(x)];

fid1= fopen('exp.txt','w'); %新建纯文本文件exp.txt

fprintf(fid1,'%6s %12s\r\n','x','exp(x)'); %\r\n表示新换一行

fprintf(fid1,'%6.2f %12.8f\r\n',A); %把矩阵A写入exp.txt中

fclose(fid1); %关闭文件句柄

fid2=fopen('exp.txt','r') %以只读的方式打开文本文件exp.txt

fgetl(fid2) %读出第一行的字符串

a=fscanf(fid2,'%f %f\n',[2,inf]) %读入文件数据的行,赋给矩阵A的对应列

%下面给出另一种读入数据的方式

a=importdata('exp.txt'); %读入文本文件中的全部数据

b=a.data %提出数值数据

-152-

4.3各种数据文件的操作

4.3.1 Matlab的mat文件

例4.13把Matlab工作空间中的数据矩阵a,b,c保存到数据文件data13.mat中.

clc, clear

a=rand(3); b=randi([1,10],4,5); c='str';

save data13 a b c

例4.14把例4.13生成的data13.mat中的所有数据加载到Matlab工作空间中,并显示当前工作空间中的所有变量.

clc, clear

load data13

whos

注:Matlab中的默认数据文件mat文件可以省略后缀名.

例4.15把矩阵a,b保存到数据文件example.mat中,然后重新加载到工作空间中,并计算矩阵a的各列均值.

clc, clear

a=rand(5);

b=magic(4);

save example.mat a b %把a,b矩阵保存到mat文件中

clear %清理内存空间

c=matfile('example.mat') %把mat文件加载到工作空间

d=size(c,'a') %读a矩阵的维数

am=mean(c.a) %计算a矩阵的每列均值

通过上面例子可以看出把mat文件加载到工作空间,既可以使用命令load,也可以使用命令matfile.

4.3.2 纯文本文件

1.读入纯文本文件

可以把word文档中整行整列的数据粘贴到纯文本文件,然后调入到Matlab工作空

-153-

间中.

例4.16纯文本文件data316中存放如下格式的数据,把数据读入Matlab中.

6 2 6

7 4 2 5

4 9

5 3 8 5 8

5 2 1 9 7 4 3

7 6 7 3 9 2 7

纯文本文件data316.txt是用记事本把上述数据保存到Matlab的当前工作路径下. 以下所有操作的数据文件必须放在Matlab的当前工作路径下,也就是说程序文件和数据文件要放在同一个目录下.

Matlab加载纯文本文件的调用格式如下:

a=load('data316.txt')

或者是

a=textread('data316.txt')

例4.17纯文本文件data317.txt中存放如下格式的数据,把其中的数据读入Matlab 中.

从产地到销地的单位运价表

B1 B2 B3 B4 B5 B6 B7 B8 产量

A1 6 2 6 7 4 2 5 9 60

A2 4 9 5 3 8 5 8 2 55

A3 5 2 1 9 7 4 3 3 51

A4 7 6 7 3 9 2 7 1 43

A5 2 3 9 5 7 2 6 5 41

A6 5 5 2 2 8 1 4 3 52

销量35 37 22 32 41 32 43 38

Matlab程序如下:

a=importdata('data317.txt') %返回值a是结构数组

b=a.data %提出其中的数据

b(isnan(b))=0 %把其中的不确定值替换成0

例4.18纯文本文件data318.txt存放如下数据,读入其中的前两行前两列交叉位置的4个元素.

6 2 6

7 4 2 5 9

-154-

4 9

5 3 8 5 8 2

5 2 1 9 7 4 3 3

7 6 7 3 9 2 7 1

2 3 9 5 7 2 6 5

5 5 2 2 8 1 4 3

Matlab命令为:

a=dlmread('data318.txt','','A1..B2') %这里''表示数据之间的分隔符是空格

例4.19 混合数据的读入

纯文本文件data319.txt存放如下数据,读入其中的数据.

日期开盘最高最低收盘交易量交易额

2007/06/04 33.76 33.99 31.00 32.44 282444.00 921965312.00

2007/06/05 31.90 33.00 29.20 32.79 329276.00 1032631552.00

2007/06/06 31.90 32.86 31.00 32.27 236677.00 756290880.00

2007/06/07 32.41 34.00 32.16 32.73 255289.00 845447232.00

2007/06/08 32.70 32.70 31.18 31.60 272817.00 862057728.00

Matlab程序如下:

clc, clear

fid = fopen('data319.txt');

fgetl(fid) %读第1行的表头

A=textscan(fid, '%s %f %f %f %f %f %f', 'CollectOutput', true) %读数据,A为1×2的细胞数组

fclose(fid);

B=A{1,2} %提取需要的数据矩阵

例4.20 混合数据的读入

纯文本文件data320.txt存放如下数据,读入其中的数据.

Sally 09/12/2005 12.34 45 Yes

Larry 10/12/2005 34.56 54 Yes

Tommy 11/12/2005 67.89 23 No

Matlab程序如下:

clc, clear

fid=fopen('data320.txt');

-155-

A1=textscan(fid, '%s %s %f %d %s') %不合并细胞数组相邻同类型数据

frewind(fid) %移动文件位置指示器到文件头,重新读入数据

A2=textscan(fid, '%s %s %f %d %s','CollectOutput', true) %合并细胞数组相邻同类型数据

B1=A2{1,2}, B2=A2{1,3} %提取需要的数值数据

fclose(fid);

例4.21使用textscan处理大的纯文本文件,假设用户自定义的数据处理函数为process_data.

Matlab程序如下:

clc, clear

block_size=10000;

format='%s %n %s %8.2f %8.2f %8.2f %8.2f %u8';

fid=fopen('largefile.txt');

while ~feof(fid)

segarray=textscan(fid, format, block_size);

process_data(segarray);

end

fclose(fid);

注:我们没有构造大数据文件largefile.txt和函数process_data,当然程序是无法运行的,我们这里只是说明编程的思路.

例4.22 输入非长方形的纯文本数据.

纯文本文件data322.txt中存放如下数据:

begin

v1=12.67

v2=3.14

v3=6.778

end

begin

v1=21.78

v2=5.24

-156-

v3=9.838

end

Matlab读入数值数据的程序如下:

clc, clear

fid = fopen('data322.txt');

c=textscan(fid, '%*s v1=%f v2=%f v3=%f %*s', 'Delimiter', '\n', 'CollectOutput', true) c=cell2mat(c) %把细胞数组转换成数值矩阵

fclose(fid);

注:这里的“*”表示跳过一个字符串的数据域.

2.数据写入纯文本文件

例4.23使用save命令把矩阵a保存到纯文本文件data323.txt中.

a=randi([1,10],50);

save data323.txt a -ascii

例4.24使用dlmwrite命令把矩阵b保存到纯文本文件data324.txt.

b=rand(5)

dlmwrite('data324.txt',b)

例4.25生成服从标准正态分布随机数的100200

矩阵,然后用fprintf命令保存到纯文本文件data325.txt.

clc, clear

fid=fopen('data325.txt','w');

a=normrnd(0,1,100,200);

fprintf(fid,'%f\n',a');

fclose(fid);

注:对于高维矩阵,用dlmwrite构造的纯文本文件,Lingo软件不识别;为了Lingo 软件识别,纯文本文件必须用fprintf构造,而且数据之间的分割符为“\n”. 另外,Matlab 数据是逐列存贮的,Lingo数据是逐行存储的,这里把a矩阵的转置矩阵a'写入纯文本文件供Lingo调用.

4.3.3 Excel文件

-157-

1.读入数据

Matlab读入Excel文件的命令是xlsread,使用格式为

num=xlsread(filename,sheet,Range)

[num,txt]=xlsread(filename,sheet,Range)

其中第1个返回值是数值矩阵,第2个返回值是字符串的细胞数组,sheet是表单序号,Range是数据域的范围.

例4.26把Excel文件data326.xls的表单Sheet1的域“A2:D5”中的数据赋给a,表单Sheet2中的全部数据赋给b.

a=xlsread('data326.xls',1,'A2:D5')

b=xlsread('data326.xls',2)

注:要运行该程序,Matlab的工作路径下必须存在文件data326.xls,下面我们就不一一说明了.

把Excel文件的所有表单数据全部读入的命令是importdata.

例4.27把Excel文件data327.xls中的所有表单数据全部读入.

mydata=importdata('data327.xls')

返回值mydata是一结构数组.

2.数据写入Excel文件

Matlab把数据写入Excel文件的命令是xlswrite,使用格式为

xlswrite(filename,A,sheet, Range)

其中filename是要写入数据的文件名,A是要写入的矩阵,sheet是表单名,Range是数据域的地址或数据域的左上角地址.

例4.28把一个510

?

?矩阵a写到Excel文件data328.xls表单Sheet1中,把一个33矩阵b写入表单Sheet2的B2开始的域中.

a=rand(5,10);

xlswrite('data328.xls',a) %默认写入第1个表单,A1开始的数据域中

b=rand(3);

xlswrite('data328.xls',b,'Sheet2','B2') %这里'Sheet2'可以替换成2

4.3.4 字符串数据

-158-

-159-

例4.29 统计下列五行字符串中字符a 、c 、g 、t 出现的频数. 1.aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggagg 2.cggaggacaaacgggatggcggtattggaggtggcggactgttcgggga 3.gggacggatacggattctggccacggacggaaaggaggacacggcggacataca 4.atggataacggaaacaaaccagacaaacttcggtagaaatacagaagctta 5.cggctggcggacaacggactggcggattccaaaaacggaggaggcggacggaggc

把上述五行复制到一个纯文本数据文件data329_1.txt 中,编写如下程序: clc, clear

fid=fopen('data329_1.txt','r'); i=1;

while (~feof(fid)) data=fgetl(fid);

a=length(find(data==97)); b=length(find(data==99)); c=length(find(data==103)); d=length(find(data==116));

e=length(find(data>=97&data<=122)); f(i,:)=[a b c d e a+b+c+d]; i=i+1; end f, he=sum(f)

dlmwrite('data329_2.txt',f); dlmwrite('data329_2.txt',he,'-append'); %统计结果写入纯文本文件中

fclose(fid);

例4.30 某计算机机房的一台计算机经常出故障,研究者每隔15分钟观察一次计算机的运行状态,收集了24小时的数据(共作97次观察). 用1表示正常状态,用0表示不正常状态,所得的数据序列如下:

1110010011111110011110111111001111111110001101101 111011011010111101110111101111110011011111100111

求在96次状态转移中,“00→,01→,10→, 11→”各有几次?

把上述数据序列保存到纯文本文件data330.txt 中,存放在Matlab 的当前工作目录

下. 编写程序如下:

clc,clear

fid=fopen('data330.txt','r');

a=[];

while (~feof(fid))

a=[a fgetl(fid)]; %把所有读入的字符组成一个大字符串

end

for i=0:1

for j=0:1

s=[int2str(i),int2str(j)]; %构造查找的子字符串

f(i+1,j+1)=length(findstr(s,a));

end

end

f %显示统计矩阵

求得96次状态转移的情况是:

→,18次;

→,8次;01

00

→,18次;11

10

→,52次.

例4.31有纯文本文件data331.txt,保存一些英文字符,统计其中“an”出现的次数,其中data331.txt中的数据如下

Oranges and lemons,

Pineapples and tea.

Orangutans and monkeys,

Dragonflys or fleas.

Matlab程序如下

clc, clear

fid=fopen('data331.txt');

str0='an'; str=[];

while (~feof(fid))

str=[str fgetl(fid)]; %把所有读入的字符组成一个大字符串

end

L=length(findstr(str,str0))

-160-

fclose(fid);

4.3.5 图像文件

例4.32把一个比较大的bmp图像文件data332.bmp,转化成比较小的jpg文件,命名成data332.jpg,并显示.

a=imread('data332.bmp'); %非工具箱图像文件,我们自己的一个图像文件

subplot(121), imshow(a), title('原bmp图像')%显示原bmp图像

imwrite(a,'data332.jpg');

subplot(122), imshow('data332.jpg'), title('新jpg图像') %对比显示新的jpg图像

例4.33生成10幅彩色jpg文件,依次命名成jpq1.jpg,…,jpg10.jpg.

clc, clear

for i=1:10

str=['jpg',int2str(i),'.jpg'];

a(:,:,1)=rand(500); a(:,:,2)=rand(500)+100; a(:,:,3)=rand(500)+200;

imwrite(a,str);

end

4.3.6 时间序列数据

例4.34时间序列数据的处理.

randn('seed',sum(100*clock)); %初始化随机数发生器

a=randn(6,1);

b=[today:today+5]' %从今天到后面5天

fts=fints(b,a) %生长fints格式数据

fts(3)=NaN; %将第3个数据变为缺失值NaN

newdata=fillts(fts,'linear') %用线性插值填补时间序列中的缺失数据

data=fts2mat(newdata) %把时间序列数据转换成矩阵

例4.35对于Matlab当前工作路径下的所有纯文本文件,进行相关的数据操作.

tf=dir('*.txt') %提出纯文本文件的信息,返回值是结构数据

n=length(tf); %计算纯文本文件的个数

fts=ascii2fts(tf(1).name); %读第一个文件中的时间序列数据

fts=extfield(fts,{'series2','series3'}); %提出第2和第3字段

-161-

for i=2:n

tp1=ascii2fts(tf(i).name); %读入新的时间序列数据

tp2=extfield(tp1,{'series2','series3'}); %提出第2和第3字段

str1=['series',num2str(2*i)]; str2=['series',num2str(2*i+1)];

tp3=fints(tp2.dates,fts2mat(tp2),{str1,str2}); %把时间序列字段改名,同名字段的两个时间序列数据是无法合并的

fts=merge(fts,tp3); %合并两个时间序列的数据

end

注:上面程序是使用我们自己的特定数据,这里只是说明编程思路.

4.3.7 日期和时间

Matlab日期和时间的函数有datenum,datevec,datestr,now,clock,date,calendar,eomday,weekday,addtodate,etime等,这里就不一一说明各个函数的用法了,下面举一个小例子说明有关函数的使用.

例4.36统计1601年1月到2000年12月,每月的13日分别出现在星期日、星期一、星期二,…,星期六的频数,并画出对应的柱状图.

注:Matlab中weekday的1对应“星期日”,2对应“星期一”,…,7对应“星期六”.

所画出的柱状图见图4-2,计算及画图的Matlab程序如下:

clc, clear

c=zeros(1,7);

for y=1601:2000

for m=1:12

d=datenum(y,m,13); %计算日期对应的天数,公元0年1月1日是第1天

w=weekday(d);

c(w)=c(w)+1;

end

end

c, bar(c) %显示频数并画出频数的柱状图

axis([0 8 680 690])

line([0,8],[4800/7,4800/7],'linewidth',4,'color','k')

set(gca,'xticklabel',{'Su','M','Tu','W','Th','F','Sa'})

-162-

4.3.8 视频文件

Matlab. 实际上,

.

例4.37读取一个视频文件jpg文件.

clc,clear

ob=VideoReader('test.avi')

n=ob.NumberOfFrame; %

for i=1:n

a=read(ob,i); %

imshow(a) %显示第i帧图像

source要提前建好imwrite(a,str); %把第i

end

1.VideoReader

obj=VideoReader(filename)

其中obj

Name-视频文件名

Path-视频文件路径

Duration-

-163-

MATLAB工具箱介绍.

MATLAB工具箱介绍 软件Matlab由美国MathWorks, Inc.公司出品,它的前身是C1eveMoler教授(现为美国工程院院士,Mathworks公司首席科学家)为著名的数学软件包LINPACK和EISPACK所写的一个接口程序。经过近20年的发展,目前Matlab已经发展成一个系列产品,包括它的内核及多个可供选择的工具箱。Matlab的工具箱数目不断增加,功能不断改善,这里简要介绍其中的几个。MATLAB 的M文件、工具箱索引和网上资源,可以从https://www.wendangku.net/doc/a74549995.html,处查找。 (1)通讯工具箱 (Communication ToolboX) ★提供100多个函数及150多个SIMULINK模块,用于系统的仿真和分析 ★可由结构图直接生成可应用的C语言源代码 (2)控制系统工具箱 (Control System Too1box) ★连续系统设计和离散系统设计 ★状态空间和传递函数 ★模型转换 ★频域响应:Bode图、Nyquist图、Nichols图 ★时域响应:冲击响应、阶跃响应、斜波响应等 ★根轨迹、极点配置、LQG (3)金融工具箱 (Financial Loo1boX) ★成本、利润分析,市场灵敏度分析 ★业务量分析及优化 ★偏差分析 ★资金流量估算 ★财务报表

(4)频率域系统辨识工具箱 (Frequency Domain System Identification Toolbox) ★辨识具有未知延迟的连续和离散系统 ★计算幅值/相位、零点/极点的置信区间 ★设计周期激励信号、最小峰值、最优能量谱等 (5)模糊逻辑工具箱 (Fuzzy Logic Too1box) ★友好的交互设计界面 ★自适应神经—模糊学习、聚类以及Sugeno推理 ★支持SIMULINK动态仿真 ★可生成C语言源代码用于实时应用 (6)高阶谱分析工具箱 (Higher—Order Spectral Analysis Toolbox) ★高阶谱估计 ★信号中非线性特征的检测和刻划 ★延时估计 ★幅值和相位重构 ★阵列信号处理 ★谐波重构 (7)图像处理工具箱 (Image Processing Toolbox) ★二维滤波器设计和滤波 ★图像恢复增强 ★色彩、集合及形态操作

Matlab各工具箱功能简介(部分)

Toolbox工具箱 序号工具箱备注 一、数学、统计与优化 1 Symbolic Math Toolbox 符号数学工具箱 Symbolic Math Toolbox?提供用于求解和推演符号运算表达式以及执行可变精度算术的函数。您可以通过分析执行微分、积分、化简、转换以及方程求解。另外,还可以利用符号运算表达式为MATLAB?、Simulink?和Simscape?生成代码。 Symbolic Math Toolbox 包含MuPAD?语言,并已针对符号运算表达式的处理和执行进行优化。该工具箱备有MuPAD 函数库,其中包括普通数学领域的微积分和线性代数,以及专业领域的数论和组合论。此外,还可以使用MuPAD 语言编写自定义的符号函数和符号库。MuPAD 记事本支持使用嵌入式文本、图形和数学排版格式来记录符号运算推导。您可以采用HTML 或PDF 的格式分享带注释的推导。 2 Partial Differential Euqation Toolbox 偏微分方程工具箱 偏微分方程工具箱?提供了用于在2D,3D求解偏微分方程(PDE)以及一次使用有限元分析。它可以让你指定和网格二维和三维几何形状和制定边界条件和公式。你能解决静态,时域,频域和特征值问题在几何领域。功能进行后处理和绘图效果使您能够直观地探索解决方案。 你可以用偏微分方程工具箱,以解决从标准问题,如扩散,传热学,结构力学,静电,静磁学,和AC电源电磁学,以及自定义,偏微分方程的耦合系统偏微分方程。 3 Statistics Toolbox 统计学工具箱

4 Curve Fitting Toolbox 曲线拟合工具箱 Curve Fitting Toolbox?提供了用于拟合曲线和曲面数据的应用程序和函数。使用该工具箱可以执行探索性数据分析,预处理和后处理数据,比较候选模型,删除偏值。您可以使用随带的线性和非线性模型库进行回归分析,也可以指定您自行定义的方程式。该库提供了优化的解算参数和起始条件,以提高拟合质量。该工具箱还提供非参数建模方法,比如样条、插值和平滑。 在创建一个拟合之后,您可以运用多种后处理方法进行绘图、插值和外推,估计置信区间,计算积分和导数。 5 Optimization Toolbox 优化工具箱 Optimization Toolbox?提供了寻找最小化或最大化目标并同时满足限制条件的函数。工具箱中包括了线性规划、混合整型线性规划、二次规划、非线性优化、非线性最小二乘的求解器。您可以使用这些求解器寻找连续与离散优化问题的解决方案、执行折衷分析、以及将优化的方法结合到其算法和应用程序中。 6 Global Optimization Toolbox 全局优化工具箱 Global Optimization Toolbox 所提供的方法可为包含多个极大值或极小值的问题搜索全局解。它包含全局搜索、多初始点、模式搜索、遗传算法和模拟退火求解器。对于目标

教师如何做研究 第四讲测试答案

教师如何做研究第四讲 1.单选(0.5分)以下关于质性研究数据分析方式的说法正确的是: 数据分析应当和数据收集同时进行,这样可以使数据分析的工作量分散 2在以下研究主题中,哪些可以通过生活史研究的范式进行最恰当的分析?中等城市的女教师如何看待她们的职业 3单选(0.5分)下列措施中,能够有效保障研究效度的是:在不同的场景或对不同的人做同样的研究 4单选(0.5分)进行文献综述时,最重要的关键词是什么:B.逻辑 5单选(0.5分)赵老师是大学的思政课教师,她想研究宗教信仰对学生学业行为的影响,希望找到信仰基督教的学生进行访谈,以下确定访谈对象的方式,哪种不合适?要找到完全能够解答研究问题的对象再开始访谈,以便获得足够的数据 6单选(0.5分)以下关于个案研究的说法错误的是 个案研究一般只采取访谈、观察等方法收集数据,而不需要测量、问卷等定量研究方法个案研究的研究对象通常是一个人 7多选(0.5分)刘老师所带的班上有一名留守儿童,他学习成绩优异,刘老师想研究他的成长过程,以及其成长与学业成就之间的关系,以下哪些可以作为刘老师研究的数据?和小明交谈,了解到的学习状况数据 学校关于小明成绩的记录单观察小明一天的生活作息所得数据 小明本人提供的日记其他人所写的小明成长的生活史

8多选(0.5分)以下哪种方法可以提高研究的信效度? 请同事对研究发现进行评价 多个研究者共同分析访谈数据,互相验证研究发现 把数据和初步分析回馈给受访者,询问他们是否认为数据可靠 尽可能详细的描述研究场景、数据收集过程等 在研究场景中重复观察相同的现象 反复训练研究者的访谈技巧、分析能力等 9多选(0.5分)质性研究与定量研究的区别,以下说法正确的是 设计特点不同,质性研究设计经常需要灵活、即兴,定量研究较为固定、结构化 结果呈现不同,质性研究一般较为整体、宽泛的呈现,定量研究结果多是精确的、数字化的 研究关注点不同,质性研究更关注事物的过程和意义,定量研究关注多少、多大 资料收集方式不同,质性研究常用访谈、观察等方式收集,定量研究多用量表、测验、调查、问卷等方式 抽样方法不同,质性研究样本选择常常是随机的、目的性强的,并且样本量较小,定量研究要求样本量大、随机性强 10多选(0.5分)以下哪些研究问题更适合进行个案研究? 某某小学的发展史(某某小学为一所免费学校)“学霸”是怎样炼成的 单亲家庭学生的成长罗小黑为什么不上学了学生的暴力倾向是如何形成的 11多选(0.5分)以下哪些做法违反了研究伦理? 数据分析时排除与研究者观点相悖的数据未经受访者核实、同意发布访谈内容要求受访者说出其不愿启齿隐私问题未经受访者同意翻看其日记 未经受访者核实、同意发布访谈内容 12多选假设你是某大学的老师,现在需要对毕业生进行访谈,了解他们对学校课程建设方面的反馈,并为学校未来课程提供建议,以下哪些属于好的访谈问题?

excel第四讲-数据处理与分析功能2

数据的筛选 数据管理时经常需要从众多的数据中挑选出一部分满足条件的记录进行处理。筛选的功能是在庞大的数据中筛选出满足指定条件的记录,便于用户对特定的数据进行编辑和修改,是Excel提供的最为实用的数据处理功能之一。 筛选区域仅显示满足条件的行,该条件由用户针对某列指定。Microsoft Excel 提供了两种筛选区域的命令:自动筛选和高级筛选。 与排序不同,筛选并不重排区域。筛选只是暂时隐藏不必显示的行。它们可以将那些符合条件的记录显示在工作表中,而将其他不满足条件的记录隐藏起来;或者将筛选出来的记录送到指定位置存放,而原数据表不动。 一、自动筛选 执行“数据”/“筛选”/“自动筛选”命令,使“自动筛选”项为选中状态(打上对号),即可进行自动筛选。 自动筛选非常方便,通过它可以实现以下的筛选操作: 对某一字段筛选出符合某特定值的记录——单击需要筛选字段的筛选器箭头,从下拉菜单中直接选择某特定值即可。 例如:“筛选出学历为硕士的记录” 对同一字段进行“与”运算和“或”运算——单击需要筛选字段的筛选器箭头,从下拉菜单中选择“自定义”,在弹出对话框中进行设置即可。 例如:“筛选出学历为硕士或博士的记录“ ”筛选出入职年份在2009-2010之间的记录” 对不同字段之间进行“与”运算——只要通过多次进行自动筛选即可。 例如:“筛选出学历为硕士并且专业为会计的记录” 可以筛选出最大/最小的若干个/若干百分比)记录——只要单击需要筛选字段的筛选器箭头,从下拉菜单中选择“前10个””即可。 例如:“筛选出年龄最大的5个记录” 但是,自动筛选无法实现多个字段之间的“或”运算,这时就需要使用高级筛选 操作步骤 一、自动筛选数据 “自动筛选”适用于简单条件。 例1:查看“喜客多超市”和“学林便利”销售数量在5以下或者20以上的产品的销售情况,操作要点如下:

MATLAB常用工具箱

MATLAB有三十多个工具箱大致可分为两类:功能型工具箱和领域型工具箱. 功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科。而领域型工具箱是专业性很强的。如控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、财政金融工具箱(Financial Toolbox)等。 下面,将MATLAB工具箱内所包含的主要内容做简要介绍: 1)通讯工具箱(Communication Toolbox)。 令提供100多个函数和150多个SIMULINK模块用于通讯系统的仿真和分析 ——信号编码 ——调制解调 ——滤波器和均衡器设计 ——通道模型 ——同步 可由结构图直接生成可应用的C语言源代码。 2)控制系统工具箱(Control System Toolbox)。 鲁连续系统设计和离散系统设计 * 状态空间和传递函数 * 模型转换 * 频域响应:Bode图、Nyquist图、Nichols图 * 时域响应:冲击响应、阶跃响应、斜波响应等 * 根轨迹、极点配置、LQG 3)财政金融工具箱(FinancialTooLbox)。 * 成本、利润分析,市场灵敏度分析 * 业务量分析及优化 * 偏差分析 * 资金流量估算 * 财务报表 4)频率域系统辨识工具箱(Frequency Domain System ldentification Toolbox * 辨识具有未知延迟的连续和离散系统 * 计算幅值/相位、零点/极点的置信区间 * 设计周期激励信号、最小峰值、最优能量诺等 5)模糊逻辑工具箱(Fuzzy Logic Toolbox)。 * 友好的交互设计界面 * 自适应神经—模糊学习、聚类以及Sugeno推理 * 支持SIMULINK动态仿真 * 可生成C语言源代码用于实时应用

MATLAB工具箱介绍

MATLAB工具箱介绍 序号工具箱备注 数学、统计与优化 1Symbolic Math Toolbox符号数学工具箱 2Partial Differential Euqation Toolbox 偏微分方程工具箱 3Statistics Toolbox统计学工具箱4Curve Fitting Toolbox曲线拟合工具箱5Optimization Toolbox优化工具箱 6Global Optimization Toolbox 全局优化工具箱 7Neural Network Toolbox神经网络工具箱 8Model-Based Calibration Toolbox 基于模型矫正工具箱 信号处理与通信 9Signal Processing Toolbox 信号处理工具箱 10DSP System Toolbox DSP[size=+0]系统工具箱 11Communications System Toolbox 通信系统工具箱 12Wavelet Toolbox小波工具箱 13Fixed-Point Toolbox定点运算工具箱14RF Toolbox射频工具箱 15Phased Array System Toolbox 相控阵系统工具箱 控制系统设计与分析 16Control system Toolbox控制系统工具箱 17System Indentification Toolbox 系统辨识工具箱 18Fuzzy Logic Toolbox模糊逻辑工具箱19Robust Control Toolbox鲁棒控制工具箱 20Model Predictive Control Toolbox 模型预测控制工具箱 21Aerospace Toolbox航空航天工具箱

第四讲 统计分析及数据处理

第四讲 统计分析及数据处理 一、描述性统计分析 在统计工具箱中,一般将向量视为随机样本,如果分析对象是矩阵,则将矩阵的每一列视为随机变量的样本。 mean(x) 当x 为向量,返回向量的均值,当x 为矩阵,返回矩阵每列元素均值构成的行向量。 特例 min 、max 、sort 、median 、std 、var 、sum 、prod 、cumsum 、cumprod 等函数的用法与mean 类似。 cov(x,y) 求样本x 与y 的协方差。(1 1()()1n x y i i i S x x y y n ==---∑) cov(X) 这里X 是矩阵,将矩阵各列看成一个样本,求样本的协方差矩阵。 corrcoef 用法与cov 类似,求相关系数或相关系数矩阵。 (xy xy x y S R s s = ) [y,I]=sort(x) 当x 为向量,y 返回x 的升序排列,I 返回y 各元素原来的位置,即y=x(I),当x 为矩阵,分别对各列排序。如果要按降序排列,[y,I]=sort(x,’descend ’),如果要将矩阵的各行排序,[y,I]=sort(x,2)。 [y,I]=sortrows(x,k) 将矩阵x 的各行按第k 列的升序排列. y=prctile(x,p) 当x 为向量,y 返回x 的p%下分位数,当x 为矩阵,分别求各列的下分位数。 相关知识:样本百分位数(percentiles ) 将样本()12,,,n x x x 按升

序排列为()(1)(2)(),,,n x x x ,则样本的p%下分位数表示这样一个值p x :比p x 小的样本占总样本数的p%,当p=50时的下分位数称为中位数。 trimmean(x,p) 剔除上下各(p/2)%数据以后的均值。 例4.1:data=[11 57 29;13 54 78;10 66 54;9 46 37;16 75 24;15 70 56;9 40 31]; 观察下列指令的运行结果: mean(data) std(data) var(data) %考虑var(data)与std(data)的关系 cov(data) corrcoef(data) [y,I]=sort(data) [y,I]=sortrows(data ,2) prctile(data,[25,50]) median(data) trimmean(data,20) 二、概率函数 y=pdf(dist,x,p1,p2,…) 返回以p1,p2,…为参数的服从dist 分布的概率密度函数(Probability density functions )在x 处的值。 常用分布及相关参数为: dist 说明 参数 ‘bino ’ or ‘Binomial ’ 二项分布B(n,p) n,p

MATLAB工具箱简介

MATLAB工具箱介绍 下面将MATLAB功能做一一简介 MATLAB丰富的工具箱将不同领域,不同方向的研究者都吸引到MATLAB的编程环境中来了。迄今所有的30多个工具箱大致可以分为两类:功能型工具箱和领域型工具箱。功能型工具箱主要用来扩充MATLAB的符号计算功能,图形建模仿真功能, 文字处理功能以及与硬件实时交互功能,能用于多种学科。而领域型工具箱是专业性很强的。如控制工具箱(Control Toolbox),信号处理工具箱(Signal ProcessingToolbox)等。 -- 1。通讯工具箱(Communication Toolbox) 提供100多个函数和150多个SIMULINK模块用于通讯系统的仿真和分析: ----信号编码 ----调制解调 ----滤波器和均衡器设计 ----通道模型 ----同步 可由结构图直接生成可应用的C语言源代码 2。控制系统工具箱(Control System Toolbox) 连续系统设计和离散系统设计 状态空间和传递函数 模型转换 频域响应:Bode图,Nyquist图, Nichols图 时域响应:冲击响应,阶跃响应,斜波响应等 根轨迹,极点配置,LQG 3。财政金融工具箱(Financial Toolbox) 成本,利润分析,市场灵敏度分析 业务量分析及优化 偏差分析 财务报表 --

4。频率系统辩识工具箱(Frequency Domain System Id entification Toolbox) 辩识具有未知延迟的连续和离散系统 计算幅值/相位,零点/极点的置信区间 设计周期激励信号,最小峰值等 5。模糊逻辑工具箱(Fuzzy Logic Toolbox) 友好的交互设计界面 自适应神经-模糊学习,聚类以及Sugeno推理 支持SIMULINK动态仿真 可生成C语言源代码用于实时应用 6。高阶谱分析工具箱(Higher-Ord er Specral Analysis Toolbox) 高阶谱估计 信号中非线性特征的检测和刻画 延时估计 幅值和相位重构 阵列信号处理 谱波重构 -- 7。图象处理工具箱(Image Processing Toolbox) 二维滤波器设计和滤波 图象恢复增强 色彩、集合及形态操作 二维变换 图象分析和统计 8。线性矩阵不等式控制工具箱(LMI Control Toolbox) LMI的基本用途 基于GUI的LMI编辑器 LMI问题的有效解法 LMI问题解决方案

Matlab各工具箱功能简介(部分)

Toolbox工具箱序号工具箱备注一、数学、统计与优化 1 Symbolic Math Toolbox 符号数学工具箱Symbolic Math Toolbox? 提供用于求解和推演符号运算表达式以及执行可变精度算术的函数。您可以通过分析 执行微分、积分、化简、转换以及方程求解。另外,还可以利 用符号运算表达式为 MATLAB、Simulink 和Simscape? 生成代码。 ?? Symbolic Math Toolbox 包含 MuPAD 语言,并已针对符号运算 表达式的处理和执?行进行优化。该工具箱备有MuPAD 函数库, 其中包括普通数学领域的微积分和线性代数,以及专业领域的 数论和组合论。此外,还可以使用 MuPAD 语言编写自定义的符 号函数和符号库。MuPAD 记事本支持使用嵌入式文本、图形和 数学排版格式来记录符号运算推导。您可以采用HTML 或PDF 的格式分享带注释的推导。 2 Partial Differential Euqation Toolbox 偏微分方程工具箱偏微分方程工具箱?提供了用于在2D,3D求解偏微分方程(PDE)以及一次 使用有限元分析。它可以让你指定和网格二维和三维几何形状 和制定边界条件和公式。你能解决静态,时域,频域和特征值 问题在几何领域。功能进行后处理和绘图效果使您能够直观地 探索解决方案。你可以用偏微分方程工具箱,以解决从标准问 题,如扩散,传热学,结构力学,静电,静磁学,和AC电源电 磁学,以及自定义,偏微分方程的耦合系统偏微分方程。 3 Statistics Toolbox 统计学工具箱 Statistics and

Matlab-并行计算工具箱函数基本情况介绍

Matlab 并行计算工具箱的使用 Matlab并行工具箱的产生一方面给大规模的数据分析带来了巨大的效益,另一方面且引入了分布式计算,借助matlab自身携带的MDCE,可以实现单机多核并行运行或者是同一个局域网络中的多台处理器组成的机群的并行运行。 个人以为后者是前者的拓展,并行计算的最初目的是为了解决串行计算速度不能满足某些复杂运算而产生的技术,能够借助较低配置的处理,协同工作处理同一个程序,但是他们之间是并不会交互的,仅仅是有核心主机—client进行大任务的分解,而后将它们分配给各个处理器,由处理器共同完成。所以说并行计算的实质还是主从结构的分布式计算。这里体现了数量的优势,同一个程序串行运行可能需要40个小时,但是若是由10台处理器同时跑,则有望将计算时间降低到接近4个小时的水平。而且这十台处理器可以是一个多个多核CPU组成,例如一个8核心CPU和1个2核心CPU。也可以是由5个2核心CPU组成,形式灵活。 而分布式计算在并行计算的基础上有功能上的扩展,一个很重要的方面就体现在,上述的十个处理器之间可以进行交互式通讯这是基于MPI(message passing interface)实现的,这对于大规模的分布式控制系统是很有需要的,也就是说,各个处理器之间要实现数据的实时传递,有时是共享某些信息,有时是lab1需要lab2的某些信息。相对于单纯的并行计算来说,后者将交互式通讯扩展到了labs之间,而不仅仅是lab和client之间。 Matlab 并行计算工具箱中的函数有: 1.Parfor (FOR循环的并行计算); 函数1:matlabpool 其作用是开启matlab并行计算池,单独的命令会以默认的配置开启并行计算环境。 函数2:parfor For循环的并行计算替代关键词,需要注意的是,parfor不能像for一样嵌套。 但是外部的parfor内部可以嵌套for循环。 函数3:batch 用于在worker上运行matlab脚本或者是matlab函数。 例如:batch(‘script.m’) 语句会根据默认并行配置文件定义的集群将script脚本文件运行在worker上。 2.批处理 函数1:batch,其语法有: j = batch('aScript') j = batch(myCluster,'aScript') j = batch(fcn,N,{x1, ..., xn}) j = batch(myCluster,fcn,N,{x1,...,xn}) j = batch(...,'p1',v1,'p2',v2,...) 其中的变量: J The batch job object. 'aScript'The script of MATLAB code to be evaluated by the MATLAB pool job. myClusterCluster object representing cluster compute resources. fcnFunction handle or string of function name to be evaluated by the MATLAB pool job.

04第4讲 Matlab的数据处理

第4讲Matlab的数据处理 司守奎 烟台市,海军航空工程学院数学教研室 Email:sishoukui@https://www.wendangku.net/doc/a74549995.html, Matlab数据类型有以下几种:数值类型,字符串,日期和时间,结构数组,细胞数组(元胞数组),函数句柄,Java对象,逻辑类型等. 数值类型包括双精度浮点型,单精度浮点型,整型类型. 下面我们简单介绍细胞数组与结构数组,并主要给出数值类型数据的操作. 4.1 细胞数组与结构数组 4.1.1 细胞数组 细胞数组是Matlab中的一类特殊的数组. 在Matlab中,由于有细胞数组这个数据类型,才能把不同类型、不同维数的数据组成为一个数组. 1.细胞数组的创建 细胞数组的创建有两种方法:通过赋值语句或cell函数创建. (1)使用赋值语句创建细胞数组:细胞数组使用花括号“{}”来创建,使用逗号“,”或空格分隔同一行的单元,使用分号“;”来分行. (2)使用cell函数创建空细胞数组. 例4.1 创建细胞数组. clc, clear %以下构造4个细胞数组 A={'x', [2;3;6]; 10, 2*pi} B=cell(2,2) C={{'LiMing','LiHong'},{'0101','0102'}; {'f','m'},{[90,80],[88,80]}} fprintf('显示C{2,2}{1}的元素:'), C{2,2}{1} fprintf('显示C{2,2}{2}的元素:'), C{2,2}{2} fprintf('显示细胞数组C{2,2}所有元素(两个元素)的值:'), C{2,2}{:} fprintf('以下显示细胞数组C的全部元素:\n') celldisp(C) fprintf('细胞数组C的全部元素显示完毕!\n') -144-

第四讲数据分析方法

第四讲 数据分析方法 第一节、数据拟合 问题:给定一批数据点(输入变量与输出变量的数据),需确定满足特定要求的曲线或 曲面。如果输入变量和输出变量都只有一个,则属于一元函数的拟合和插值;而若输入变量 有多个,则为多元函数的拟合和插值(有点回归分析的意思) 解决方案: (1) 若要求所求曲线(面)通过所给所有数据点,就是插值问题; (2) 若不要求曲线(面)通过所有数据点,而是要求它反映对象整体的变化趋势,这就 是数据拟合,又称曲线拟合或曲面拟合。 注意:插值和拟合都是要根据一组数据构造一个函数作为近似,由于近似的要求不同, 二者的数学方法上是完全不同的。而面对一个实际问题,究竟应该用插值还是拟合,有时 容易确定,有时则并不明显。 例 1:下面数据是某次实验所得,希望得到 X 和 f 之间的关系? x f 1 2 4 7 9 12 13 15 17 1.5 3.9 6.6 11.7 15.6 18.8 19.6 20.6 21.1 曲线拟合问题最常用的解法——最小二乘法的基本思路 第一步:确定拟合的函数类型 y f (x ;a 1,a 2,",a m ),其中a 1,a 2,",a m 为待定系数。 (函数类型的确定可以根据内在的规律确定,如果无现成的规则,则可以通过散点图,联系 曲线的形状进行分析) 第二步:确定a 1,a 2,",a m 的最小二乘准则:要求n 个已知点(x i , y i )与曲线 y f (x ) n 的距离d i 的平方和 (y i f x 2 最小 。 ( )) i i 1 用 MATLAB 作拟合 1.多项式拟合。作多项式 y a 0x m a 1x m 1 "a m 拟合,可利用 a=polyfit(x,y,m)—其中 x,y 为给出的数据,m 为多项式的次数。 多项式在 x 处的值 y 可用以下命令计算: y=polyval (a,x ) 2.用 MATLAB 作非线性最小二乘拟合 Matlab 的提供了两个求非线性最小二乘拟合的函数:lsqcurvefit 和 lsqnonlin 。两个命令 都要先建立 M-文件 fun.m ,在其中定义函数 f(x)。 (1)x = lsqcurvefit (‘fun’,x0,x?ata,y?ata); (2)x =lsqcurvefit (‘fun’,x0,x?ata,y?ata,options); (3)x = ls qcurvefit (‘fun’,x0,x?ata,y?ata,options,’?ra?’); (4)“x, options” = lsqcurvefit (‘fun’,x0,x?ata,y?ata,…); (5)“x, options,funval” = lsqcurvefit (‘fun’,x0,x?ata,y?ata,…);

matlab工具箱中文

Matlab工具箱 所谓Matlab工具箱就是一些M文件的集合, 用户可以修改工具箱中的函数,更为重要的是用户可以通过编制M文件来任意地添加工具箱中原来没有的工具函数。此功能充分体现了matlab语言的开放性。许多的专业领域在Matlab中都有自己的工具箱,假如你发现你的专业领域没有的话, 你也可以自己开发一个。 还是先来通过下面这篇Matlab的各个工具箱功能介绍的小文章,来看看有没有你所需要的吧,有感兴趣的朋友,可以到网上搜各工具箱函数的细节,相信你会好运的。 有三十多个工具箱,大致可分为两类:功能型工具箱和领域型工具箱。 功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科。而领域型工具箱是专业性很强的,如控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、财政金融工具箱(Financial Toolbox)等。 下面,将MATLAB工具箱内所包含的主要内容做简要介绍: 1)通讯工具箱(Communication Toolbox)。 提供100多个函数和150多个SIMULINK模块用于通讯系统的仿真和分析 ——信号编码 ——调制解调 ——滤波器和均衡器设计 ——通道模型 ——同步 可由结构图直接生成可应用的C语言源代码。 2)控制系统工具箱(Control System Toolbox)。 连续系统设计和离散系统设计 * 状态空间和传递函数 * 模型转换 * 频域响应:Bode图、Nyquist图、Nichols图 * 时域响应:冲击响应、阶跃响应、斜波响应等 * 根轨迹、极点配置、LQG 3)财政金融工具箱(FinancialTooLbox)。 * 成本、利润分析,市场灵敏度分析 * 业务量分析及优化 * 偏差分析 * 资金流量估算 * 财务报表 4)频率域系统辨识工具箱(Frequency Domain System ldentification Toolbox * 辨识具有未知延迟的连续和离散系统

MATLABANN工具箱实用指南

Matlab的神经网络工具箱实用指南 文章摘要:第一章是神经网络的基本介绍,第二章包括了由工具箱指定的有关网络结构和符号的基本材料以及建立神经网络的一些基本函数,例如new、init、adapt和train。第三章以反向传播网络为例讲解了反向传播网络的原理和应用的基本过程。 第一章介绍 1.神经网络 神经网络是单个并行处理元素的集合,我们从生物学神经系统得到启发。在自然界,网络功能主要由神经节决定,我们可以通过改变连接点的权重来训练神经网络完成特定的功能。 一般的神经网络都是可调节的,或者说可训练的,这样一个特定的输入便可得到要求的输出。如下图所示。这里,网络根据输出和目标的比较而调整,直到网络输出和目标匹配。作为典型,许多输入/目标对应的方法已被用在有监督模式中来训练神经网络。 神经网络已经在各个领域中应用,以实现各种复杂的功能。这些领域包括:模式识别、鉴定、分类、语音、翻译和控制系统。 如今神经网络能够用来解决常规计算机和人难以解决的问题。我们主要通过这个工具箱来建立示范的神经网络系统,并应用到工程、金融和其他实际项目中去。 一般普遍使用有监督训练方法,但是也能够通过无监督的训练方法或者直接设计得到其他的神经网络。无监督网络可以被应用在数据组的辨别上。一些线形网络和Hopfield网络是直接设计的。总的来说,有各种各样的设计和学习方法来增强用户的选择。 神经网络领域已经有50年的历史了,但是实际的应用却是在最近15年里,如今神经网络仍快速发展着。因此,它显然不同与控制系统和最优化系统领域,它们的术语、数学理论和设计过程都已牢固的建立和应用了好多年。我们没有把神经网络工具箱仅看作一个能正常运行的建好的处理轮廓。我们宁愿希望它能成为一个有用的工业、教育和研究工具,一个能够帮助用户找到什么能够做什么不能做的工具,一个能够帮助发展和拓宽神经网络领域的工具。因为这个领域和它的材料是如此新,这个工具箱将给我们解释处理过程,讲述怎样运用它们,并且举例说明它们的成功和失败。我们相信要成功和满意的使用这个工具箱,对范例

Matlab所有工具箱说明

Matlab所有工具箱说明 工具箱或模块名称模块说明 *MATLAB Compiler 把MA TLAB的M文件编译成DLL文件,或EXE独立应用程序 *MATLABC/C++GraphicsLibrary MATLABC/C++图形库 *MATLABC/C++Math Library MATLABC/C++数学计算库 *Optimization Toolbox 包含求函数零点,极值,规划等优化程序的工具箱*Partial Differential Equation Toolbox偏微分方程工具箱 *Statistics Toolbox包含进行复杂统计分析所需程序的工具箱 *StatisticsToolbox统计工具箱 *Symbolic Math Toolbox 符号类数据的操作和运算工具箱,通过符号数学工具箱, MATLAB 用户可以方便地将数学与符号运算纳入统一的 环境当中,并且完全不丧失速度和精度 DA TA Acquisition Toolbox数据采集工具箱 Database Toolbox数据库工具箱 Datafeed Toolbox数据流入工具箱 Dials and Gauges Blockset刻度标尺模块集 DSP Blockset数字信号模块集 Embedded Target for Motorola HC12摩托罗拉HC12的嵌入目标 Embedded Target for Motorola MPC555 摩托罗拉MPC555的嵌入目标 Embedded Target for OSEK VDX OSEK VDX 嵌入目标 Embedded TargetforInfineon C166 Infineon C166微控制器嵌入目标Embedded TargetforTIC6000 DSP(tm)T IC6000 DSP(tm)嵌入目标 Excel Link EXCEL外链接 Extended Symbolic Math 扩展符号数学,用于符号运算 Filter Design Toolbox滤波器设计工具箱 FilterDesign HDL Coder滤波器设计HDL 编码器,可生成HDL代码Financial Derivatives Toolbox金融系统工具箱 Financial Time Series Toolbox金融时间系列工具箱 Financial Toolbox金融财政工具箱 Fixed-Income Toolbox固定收益证券建模和分析 Fixed-Point Blockset定点模块集 Fuzzy Logic Toolbox模糊逻辑工具箱 GARCH Toolbox 单变量广义自回归条件异方差工具箱, 用于对金融市场中反复无常的变化性进行分析 Genetic Algorithm Direct Search Toolbox 遗传算法直接搜索工具箱

(整理)MATLAB如何添加工具箱.

关于如何在matlab中添加新的工具箱的整理和心得 首先说说添加到matlab搜索路径好处:1 对n——你只需要存储一个副本,就可以在其他地方使用。具体来说,假设你在数据盘D上新建了两个目录abc和def,这两个工程(每个目录下的所有程序相应地称为一个工程)都需要调用同一个(些)函数(简称工具箱),这时候,如果你没有把该工具箱添加到matlab的搜索路径下,则需要分别把工具箱中所有用到的文件都复制到目录abc和def下才能正确运行。这显然浪费空间,所以,matlab提供了一个搜索路径(默认在matlab安装目录下的toolbox中),只要把工具箱对应的整个文件夹复制到搜索路径对应的目录下,并且通知matlab一声(把该路径正确添加到搜索路径中),就可以在abc和def中使用这个工具箱了(即无论你的工程文件在哪个目录(有效的目录)下都可以访问这个工具箱中的函数)。下面就以matlab安装目录下的toolbox目录作为默认的添加路径进行详细说明。 1. 如何添加工具箱? 以下是添加工具箱的方法:(论坛很多人转载过,这里就不作区分了,下面的举例也一样)如果是Matlab安装光盘上的工具箱,重新执行安装程序,选中即可。如果是单独下载的工具箱,则需要把新的工具箱(以下假设工具箱名字为svm)解压到toolbox目录下,然后用addpath或者pathtool把该工具箱的路径添加到matlab的搜索路径中,最后用which newtoolbox_command.m来检验是否可以访问。如果能够显示新设置的路径,则表明该工具箱可以使用了。具体请看工具箱自己代的README文件。 1.1 举例: 要添加的工具箱为svm,则解压后,里边有一个目录svm,假设matlab安装在D:\MATLAB6p5,将svm目录拷贝至D:\MATLAB6p5\toolbox,然后运行matlab,在命令窗口输入addpath D:\MATLAB6p5\toolbox\svm回车,来添加路径。然后在svm目录下,任意找一个m文件,以svcinfo.m为例,在命令窗口中输入which svcinfo.m。如果显示出该文件路径,如D:\MATLAB6p5\toolbox\svm\svcinfo.m,则安装成功,当然也可以在命令窗口输入path来查看。 上面的说明和例子基本上介绍了在matlab中如何添加工具箱,下面是其他补充: 1.2 添加方式总结: 事实上,有两种添加工具箱到matlab搜索路径的方法:其一是用代码,其二是用界面。其实无论用哪种方法,都是修改pathdef.m这个文件,阁下如果是高手,可以直接打开该文件修改,呵呵,对此这里不作讨论。 1.2.1 代码方式: 1.2.1.1 适用于添加下载的工具箱(别人的): 在命令窗口输入: addpath D:\MATLAB6p5\toolbox\svm 或者addpath(‘D:\MATLAB6p5\toolbox\svm’); 但是这种方法只能添加svm目录,如果该目录下有其他子文件夹,并且运行时候“隐式”调用到这些子文件夹(例如假设svm目录下存在子文件夹matdata,该子文件夹下有logo.mat 这个文件,且在m文件代码中使用了诸如load logo 这样的句子,即没有显式给出logo.mat 的具体路径,则称为“隐式”),则不能正确访问。因此,有必要在添加时使用以下语句把svm目录下所有文件夹都添加到搜索路径中: [Copy to clipboard]CODE: addpath(genpath(D:\MATLAB6p5\toolbox\svm));

matlab工具箱介绍

matlab工具箱介绍 MATLAB有三十多个工具箱大致可分为两类:功能型工具箱和领域型工具箱. 功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,能用于多种学科。而领域型工具箱是专业性很强的。如控制系统工具箱(Control System Toolbox)、信号处理工具箱(Signal Processing Toolbox)、财政金融工具箱(Financial Toolbox)等。 下面,将MATLAB工具箱内所包含的主要内容做简要介绍: 1)通讯工具箱(Communication Toolbox)。 令提供100多个函数和150多个SIMULINK模块用于通讯系统的仿真和分析 ——信号编码 ——调制解调 ——滤波器和均衡器设计 ——通道模型 ——同步 可由结构图直接生成可应用的C语言源代码。 2)控制系统工具箱(Control System Toolbox)。 鲁连续系统设计和离散系统设计 * 状态空间和传递函数 * 模型转换 * 频域响应:Bode图、Nyquist图、Nichols图 * 时域响应:冲击响应、阶跃响应、斜波响应等 * 根轨迹、极点配置、LQG 3)财政金融工具箱(FinancialTooLbox)。 * 成本、利润分析,市场灵敏度分析 * 业务量分析及优化 * 偏差分析 * 资金流量估算 * 财务报表 4)频率域系统辨识工具箱(Frequency Domain System ldentification Toolbox * 辨识具有未知延迟的连续和离散系统 * 计算幅值/相位、零点/极点的置信区间 * 设计周期激励信号、最小峰值、最优能量诺等 5)模糊逻辑工具箱(Fuzzy Logic Toolbox)。 * 友好的交互设计界面 * 自适应神经—模糊学习、聚类以及Sugeno推理 * 支持SIMULINK动态仿真 * 可生成C语言源代码用于实时应用 (6)高阶谱分析工具箱(Higher—Order SpectralAnalysis Toolbox * 高阶谱估计 * 信号中非线性特征的检测和刻画 * 延时估计 * 幅值和相位重构 * 阵列信号处理 * 谐波重构

Matlab常用工具箱介绍

Matlab常用工具箱介绍(英汉对照) Matlab Main Toolbox——matlab主工具箱 Control System Toolbox——控制系统工具箱 Communication Toolbox——通讯工具箱 Financial Toolbox——财政金融工具箱 System Identification Toolbox——系统辨识工具箱 Fuzzy Logic Toolbox——模糊逻辑工具箱 Higher-Order Spectral Analysis Toolbox——高阶谱分析工具箱 Image Processing Toolbox——图象处理工具箱 LMI Control Toolbox——线性矩阵不等式工具箱 Model predictive Control Toolbox——模型预测控制工具箱 μ-Analysis and Synthesis Toolbox——μ分析工具箱 Neural Network Toolbox——神经网络工具箱 Optimization Toolbox——优化工具箱 Partial Differential Toolbox——偏微分方程工具箱 Robust Control Toolbox——鲁棒控制工具箱 Signal Processing Toolbox——信号处理工具箱 Spline Toolbox——样条工具箱 Statistics Toolbox——统计工具箱 Symbolic Math Toolbox——符号数学工具箱 Simulink Toolbox——动态仿真工具箱 System Identification Toolbox——系统辨识工具箱 Wavele Toolbox——小波工具箱 例如:控制系统工具箱包含如下功能: 连续系统设计和离散系统设计 状态空间和传递函数以及模型转换 时域响应(脉冲响应、阶跃响应、斜坡响应) 频域响应(Bode图、Nyquist图) 根轨迹、极点配置 较为常见的matlab控制箱有: 控制类: 控制系统工具箱(control systems toolbox) 系统识别工具箱(system identification toolbox) 鲁棒控制工具箱(robust control toolbox) 神经网络工具箱(neural network toolbox) 频域系统识别工具箱(frequency domain system identification toolbox)模型预测控制工具箱(model predictive control toolbox) 多变量频率设计工具箱(multivariable frequency design toolbox)

相关文档