文档库 最新最全的文档下载
当前位置:文档库 › 数据分析-MATLAB相关算法

数据分析-MATLAB相关算法

数据分析-MATLAB相关算法
数据分析-MATLAB相关算法

数据分析-MATLAB相关算法一.非线性方程求解

1.二分法

m文件:

function[c,err,yc]=bisect(f,a,b,delta)

%f是所要求解的函数

%a,b是区间的左右限

%delta是误差界

%c是近似解

%yc是函数f在c上的值,err为误差

if nargin<4

delta=1e-5;

end

ya=feval('f',a);

yb=feval('f',b);

if yb==0

c=b,return,end

if ya*yb>0,

disp('(a,b)不是有根区间');

return,end

max1=1+round((log(b-a)-log(delta))/log(2));

for k=1:max1

c=(a+b)/2;

yc=feval('f',c);

if yc==0

a=c;

b=c;

break,

elseif yb*yc>0

b=c;

yb=yc;

else

a=c;

ya=c;

end

if (b-a)

break,

end

k,c=(a+b)/2,err=abs(b-a),yc=feval('f',c); end

2.不动点迭代

m文件

function[p0,k,err,p]=fixpt(g,p0,tol.max1) %g是给定的迭代函数

%p0是初值

%p是不动点的近似值

P(1)=p0;

for k=2:max1

P(k)=feval('g',P(k-1));

k,err=abs(P(k)-P(k-1))

p=P(k);

if (err

break;end

if k==max1

disp('超过了迭代最大次数;

end

end

P

选定的迭代函数:

function y=g(x)

y=sin(x)/x;

二.方阵的特征值与特征向量

1幂法

function [m xbiaozhi]=mifa(A,jingdu,cishu)

%幂法求矩阵最大特征值,其中

%m为绝对值最大的特征值,x为对应最大特征值的特征向量%biaozhi表明迭代是否成功

if nargin<3

cishu=100;

end

if nargin<2

jingdu=1e-5;

end

n=length(A);

x=ones(n,1);

biaozhi='迭代失败!';

k=0;m1=0;

while k<=cishu

v=A*x;

[vmax,k]=max(abs(v));

m=v(k);

x=v/m;

if abs(m-m1)

biaozhi='迭代成功!';break; end

m1=m;

k=k+1;

end

三.常微分方程求解

1.改进欧拉法解微分方程

function yout=gaijinoula(f,x0,y0,xn,n)

%定义输入输出

x=zeros(1,n+1);y=zeros(1,n+1);

x(1)=x0;y(1)=y0;

h=(xn-x0)/n;

for i=1:n

x(i+1)=x(i)+h;

z0=y(i)+h*feval(f,x(i),y(i));

y(i+1)=y(i)+(feval(f,x(i),y(i))+feval(f,x(i+1),z0))*h/2; end

shuchu=[x',y']

fprintf(' x(i) y(i)')

举例:

所要求解的函数:

function Dy=f(x,y)

Dy=x+y;

2.四阶龙格库塔法解微分方程

functionyout=xin(bianliang)

%定义输入输出

clear all

x0=0;xn=1;y0=1;h=0.1;

%设置初始值、区间和步长

[y,x]=lgkt4j(x0,xn,y0,h);

%四阶龙格库塔法

n=length(x);

fprintf(' i x(i) y(i)\n');

%输出格式

for i=1:n

fprintf('%2d %3.3f %4.4f\n',i,x(i),y(i)); end

function[y,x]=lgkt4j(x0,xn,y0,h)

x=x0:h:xn;

%设置区间

n=length(x);

y1=x;

y1(1)=y0;

for i=1:n

K1=f(x(i),y1(i));

K2=f(x(i)+h/2,y1(i)+h/2*K1);

K3=f(x(i)+h/2,y1(i)+h/2*K2);

K4=f(x(i)+h,y1(i)+h*K3);

y1(i+1)=y1(i)+h/6*(K1+2*K2+2*K3+K4);

end

y=y1;

举例:

function Dy=f(x,y)

Dy=y-2*x/y;

执行结果为:

i x(i) y(i)

1 0.000 1.0000

2 0.100 1.0954

3 0.200 1.1832

4 0.300 1.2649

5 0.400 1.3416

6 0.500 1.4142

7 0.600 1.4832

8 0.700 1.5492

9 0.800 1.6125

10 0.900 1.6733

11 1.000 1.7321

四.插值法

1拉格朗日插值

function[c,l]=lglr(x,y)

%x为n个节点的横坐标组成的向量,y为纵坐标组成的向量%c为插值函数的系数组成的向量

%输出为差值多项式的系数

w=length(x);

n=w-1;

l=zeros(w,w);

for k=1:n+1

v=1;

for j=1:n+1

if k~=j

v=conv(v,poly(x(j)))/(x(k)-x(j));

end

end

l(k,:)=v;

end

c=y*l;

五.数据拟合

1.最小二乘拟合

functionc=zxrc(x,y,m)

%x是数据点横坐标,y数据点纵坐标

%m要构造的多项式的系数,c是多项式由高到低的系数所组成的向量n=length(x);

b=zeros(1:m+1);

f=zeros(n,m+1);

for k=1:m+1

f(:,k)=x'.^(k-1);

end

a=f'*f;

b=f'*y';

c=a\b;

c=flipud(c);

六.矩阵相关程序

1.求矩阵的行列式

function d=hanglieshi(a)

%求任意输入矩阵的行列式

clear all;

a=input('输入矩阵a=');

d=1;

n=size(a); %方阵的行(或者列)数

for k=1:n-1

e=a(k,k); %设矩阵的主元

fori=k:n %求出矩阵的全主元

forj=k:n

if abs(a(i,j))>e

e=a(i,j);

p=i;

q=j;

else c=0;

end

end

end

for j=k:n %行交换

t=a(k,j);

a(k,j)=a(p,j);

a(p,j)=t;

end

if p~=k %判断行列式是否换号

d=d*(-1);

else d=d;

end

for i=k:n %列交换

t=a(i,k);

a(i,k)=a(i,q);

a(i,q)=t;

end

if q~=k %判断行列式是否换号

d=d*(-1);

else d=d;

end

if a(k,k)~=0

for i=k+1:n %消元

r=a(i,k)/a(k,k);

for j=k+1:n

a(i,j)=a(i,j)-r*a(k,j); end

end

else d=d;

end

end

for i=1:n%求行列式

d=d*a(i,i);

end

disp('矩阵a的行列式为:')

d

2.矩阵的换行

function c=huanhang(a)

%实现矩阵换行

clear all;

a=input('输入矩阵a='); [m,n]=size(a);

for j=1:n

t=a(1,j);

a(1,j)=a(2,j);

a(2,j)=t;

end

c=a;

disp('换行后矩阵a变为:')

c

3.列主元消元法解方程function d=jiefang(a)

%列主元消元法解方程

clear all;

a=input('输入矩阵a='); [row,column]=size(a);

fori=1:column%每一列的列标

m(i)=i;

s(i)=0;

x(i)=0;

end

for k=1:row-1%最后一行不用比较e=a(k,k);

p=k;

q=k;

fori=k:row

forj=k:column-1

ifabs(a(i,j))>abs(e)

e=a(i,j);

p=i;

q=j;

else c=0;

end

end

end

t=m(k); %换列标记

m(k)=m(q);

m(q)=t;

for i=1:row %列交换

t=a(i,k);

a(i,k)=a(i,q);

a(i,q)=t;

end

for j=k:column %行变换

t=a(k,j);

a(k,j)=a(p,j);

a(p,j)=t;

end

ifa(k,k)==0 %消元

disp('非唯一解')

else for i=k+1:row

r=a(i,k)/a(k,k);

for j=k:column

a(i,j)=a(i,j)-r*a(k,j); end

end

end

end

ifa(row,row)==0

disp('非唯一解')

s(row)=a(row,column)/a(row,row); s(row)

q=m(row);

x(q)=s(row);

for i=row-1:1

for j=i+1:row

s(i)=s(i)+a(i,j)*x(i);

end

s(i)=[a(i,column)-s(i)]/a(i,i);

q=m(i);

x(q)=s(i);

end

end

for i=1:row

x(i)

end

end

4.两矩阵相乘

function d=chengfa(A,B)

% 实现两个矩阵相乘

A=input('输入矩阵A=');

B=input('输入矩阵B=')

[m n]=size(A);

[nb p]=size(B);

C=zeros(m,p);

if n~=nb

disp('不满足矩阵相乘条件') else for i=1:m

for j=1:p

d=0;

for k=1:n

d=d+A(i,k)*B(k,j);

end

C(i,j)=d;

end

end

disp('矩阵AB结果为:')

C

End

5.矩阵元素最大值及下标

function d=xunzhuyuan(a)

%求一个矩阵的最大元素及其下标

clear all;

a=input('输入矩阵a=');

e=a(1,1); %设e=a(1,1)为最大元素 p=1;

q=1;

[m,n]=size(a);

for i=1:m

for j=1:n

if abs(a(i,j))>e

e=a(i,j);

p=i;

q=j;

else c=0;

end

end

end

disp('最大元素为:')

d=a(p,q)

disp('最大元素所在的行为:')

p

disp('最大元素所在的列为:')

q

end

6. 矩阵元素最大值及下标

function d=zuidazhi(A)

%求矩阵的最大元素及其下标

clear all;

A=input('输入矩阵A=');

B=A'; %转置

[a,r]=max(A); %求出矩阵A每一列的最大值和每列最大值所在的行数[maxV,column]=max(a); %最大元素及其所在的列

[b,c]=max(B);

[maxV1,row]=max(b);%最大元素及其所在的行

disp('矩阵A的最大元素为:')

maxV

disp('矩阵A最大元素所在的列为:')

column

disp('矩阵A最大元素所在的行为:')

matlab在统计数据的描述性分析的应用

统计数据的描述性分析 一、实验目的 熟悉在matlab中实现数据的统计描述方法,掌握基本统计命令:样本均值、样本中位数、样本标准差、样本方差、概率密度函数pdf、概率分布函数df、随机数生成rnd。 二、实验内容 1 、频数表和直方图 数据输入,将你班的任意科目考试成绩输入 >> data=[91 78 90 88 76 81 77 74]; >> [N,X]=hist(data,5) N = 3 1 1 0 3 X = 75.7000 79.1000 82.5000 85.9000 89.3000 >> hist(data,5)

2、基本统计量 1) 样本均值 语法: m=mean(x) 若x 为向量,返回结果m是x 中元素的均值; 若x 为矩阵,返回结果m是行向量,它包含x 每列数据的均值。 2) 样本中位数 语法: m=median(x) 若x 为向量,返回结果m是x 中元素的中位数; 若x 为矩阵,返回结果m是行向量,它包含x 每列数据的中位数3) 样本标准差 语法:y=std(x) 若x 为向量,返回结果y 是x 中元素的标准差; 若x 为矩阵,返回结果y 是行向量,它包含x 每列数据的标准差

std(x)运用n-1 进行标准化处理,n是样本的个数。 4) 样本方差 语法:y=var(x); y=var(x,1) 若x 为向量,返回结果y 是x 中元素的方差; 若x 为矩阵,返回结果y 是行向量,它包含x 每列数据的方差 var(x)运用n-1 进行标准化处理(满足无偏估计的要求),n 是样本的个数。var(x,1)运用n 进行标准化处理,生成关于样本均值的二阶矩。 5) 样本的极差(最大之和最小值之差) 语法:z= range(x) 返回结果z是数组x 的极差。 6) 样本的偏度 语法:s=skewness(x) 说明:偏度反映分布的对称性,s>0 称为右偏态,此时数据位于均值右边的比左边的多;s<0,情况相反;s 接近0 则可认为分布是对称的。 7) 样本的峰度 语法:k= kurtosis(x) 说明:正态分布峰度是3,若k 比3 大得多,表示分布有沉重的尾巴,即样本中含有较多远离均值的数据,峰度可以作衡量偏离正态分布的尺度之一。 >> mean(data) ,

MATLAB数据分析与多项式计算(M)

第7章 MATLAB数据分析与多项式计算 6.1 数据统计处理 6.2 数据插值 6.3 曲线拟合 6.4 离散傅立叶变换 6.5 多项式计算 6.1 数据统计处理 6.1.1 最大值和最小值 MATLAB提供的求数据序列的最大值和最小值的函数分别为max 和min,两个函数的调用格式和操作过程类似。 1.求向量的最大值和最小值 求一个向量X的最大值的函数有两种调用格式,分别是: (1) y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。 (2) [y,I]=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。 求向量X的最小值的函数是min(X),用法和max(X)完全相同。 例6-1 求向量x的最大值。 命令如下: x=[-43,72,9,16,23,47]; y=max(x) %求向量x中的最大值 [y,l]=max(x) %求向量x中的最大值及其该元素的位置 2.求矩阵的最大值和最小值 求矩阵A的最大值的函数有3种调用格式,分别是: (1) max(A):返回一个行向量,向量的第i个元素是矩阵A的第i 列上的最大值。 (2) [Y,U]=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。 (3) max(A,[],dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。 求最小值的函数是min,其用法和max完全相同。

例6-2 分别求3×4矩阵x中各列和各行元素中的最大值,并求整个矩阵的最大值和最小值。 3.两个向量或矩阵对应元素的比较 函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为: (1) U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B 同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。 (2) U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。 min函数的用法和max完全相同。 例6-3 求两个2×3矩阵x, y所有同一位置上的较大元素构成的新矩阵p。 6.1.2 求和与求积 数据序列求和与求积的函数是sum和prod,其使用方法类似。设X是一个向量,A是一个矩阵,函数的调用格式为: sum(X):返回向量X各元素的和。 prod(X):返回向量X各元素的乘积。 sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。 prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。 sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。 prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。 例6-4 求矩阵A的每行元素的乘积和全部元素的乘积。 6.1.3 平均值和中值 求数据序列平均值的函数是mean,求数据序列中值的函数是median。两个函数的调用格式为: mean(X):返回向量X的算术平均值。 median(X):返回向量X的中值。

Matlab对采样数据进行频谱分析

使用Matlab对采样数据进行频谱分析 1、采样数据导入Matlab 采样数据的导入至少有三种方法。 第一就是手动将数据整理成Matlab支持的格式,这种方法仅适用于数据量比较小的采样。 第二种方法是使用Matlab的可视化交互操作,具体操作步骤为:File --> Import Data,然后在弹出的对话框中找到保存采样数据的文件,根据提示一步一步即可将数据导入。这种方法适合于数据量较大,但又不是太大的数据。据本人经验,当数据大于15万对之后,读入速度就会显著变慢,出现假死而失败。 第三种方法,使用文件读入命令。数据文件读入命令有textread、fscanf、load 等,如果采样数据保存在txt文件中,则推荐使用 textread命令。如 [a,b]=textread('data.txt','%f%*f%f'); 这条命令将data.txt中保存的数据三个三个分组,将每组的第一个数据送给列向量a,第三个数送给列向量b,第二个数据丢弃。命令类似于C语言,详细可查看其帮助文件。文件读入命令录入采样数据可以处理任意大小的数据量,且录入速度相当快,一百多万的数据不到20秒即可录入。强烈推荐! 2、对采样数据进行频谱分析 频谱分析自然要使用快速傅里叶变换FFT了,对应的命令即 fft ,简单使用方法为:Y=fft(b,N),其中b即是采样数据,N为fft数据采样个数。一般不指定N,即简化为Y=fft(b)。Y即为FFT变换后得到的结果,与b的元素数相等,为复数。以频率为横坐标,Y数组每个元素的幅值为纵坐标,画图即得数据b的幅频特性;以频率为横坐标,Y数组每个元素的角度为纵坐标,画图即得数据b的相频特性。典型频谱分析M程序举例如下: clc fs=100; t=[0:1/fs:100]; N=length(t)-1;%减1使N为偶数 %频率分辨率F=1/t=fs/N p=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)... +0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t); %上面模拟对信号进行采样,得到采样数据p,下面对p进行频谱分析 figure(1) plot(t,p); grid on title('信号 p(t)'); xlabel('t') ylabel('p')

Matlab大数据处理

Matlab大数据处理2:硬盘访问.mat文件 分类:Matlab Hack2013-09-08 20:16 146人阅读评论(0) 收藏举报Matlab程序中经常要访问.mat文件,通常在作法是用load函数直接加载.mat文件。如果.mat文件非常大,超过了系统可用内存的时候该怎么办呢?Matlab2013b为提供了matfile函数,matfile函数可以通过索引直接访问.mat文件中的Matlab变量,而无需将.mat文件加载入内存。 matfile有两种用法: m = matfile(filename),用文件名创建matfile对象,通过这个对象可以直接访问mat文件中的matlab变量。 m = matfile(filename,'Writable',isWritable),isWritable开启或关闭文件写操作。 使用示例: 1. 向mat文件中写入变量 x = magic(20); m = matfile('myFile.mat'); % 创建一个指向myFile.mat的matfile对象 m.x = x; % 写入x m.y(81:100,81:100) = magic(20); % 使用坐标索引

2. 加载变量 filename = 'topography.mat'; m = matfile(filename); topo = m.topo; %读取变量topo [nrows,ncols] = size(m,'stocks'); %读取stocks变量的size avgs = zeros(1,ncols); for idx = 1:ncols avgs(idx) = mean(m.stocks(:,idx)); end 3. 开启写权限 filename = 'myFile.mat'; m = matfile(filename,'Writable',true); 或者 m.Properties.Writable = true;

第6章matlab数据分析与多项式计算_习题答案

第6章 MATLAB数据分析与多项式计算 习题6 一、选择题 1.设A=[1,2,3,4,5;3,4,5,6,7],则min(max(A))的值是()。B A.1 B.3 C.5 D.7 2.已知a为3×3矩阵,则运行mean(a)命令是()。B A.计算a每行的平均值 B.计算a每列的平均值 C.a增加一行平均值 D.a增加一列平均值 3.在MATLAB命令行窗口输入下列命令: >> x=[1,2,3,4]; >> y=polyval(x,1); 则y的值为()。 D A.5 B.8 C.24 D.10 4.设P是多项式系数向量,A为方阵,则函数polyval(P,A)与函数polyvalm(P,A)的值()。D A.一个是标量,一个是方阵 B.都是标量 C.值相等 D.值不相等 5.在MATLAB命令行窗口输入下列命令: >> A=[1,0,-2]; >> x=roots(A); 则x(1)的值为()。 C A.1 B.-2 C. D. 6.关于数据插值与曲线拟合,下列说法不正确的是()。A A.3次样条方法的插值结果肯定比线性插值方法精度高。 B.插值函数是必须满足原始数据点坐标,而拟合函数则是整体最接近原始数据点,而不一定要必须经过原始数据点。 C.曲线拟合常常采用最小二乘原理,即要求拟合函数与原始数据的均方误差达到极小。 D.插值和拟合都是通过已知数据集来求取未知点的函数值。 二、填空题 1.设A=[1,2,3;10 20 30;4 5 6],则sum(A)= ,median(A)= 。 [15 27 39],[4 5 6[ 2.向量[2,0,-1]所代表的多项式是。2x2-1 3.为了求ax2+bx+c=0的根,相应的命令是(假定a、b、c已经赋值)。为了

实验一数据处理方法MATLAB实现

实验一数据处理方法的MATLAB实现 一、实验目的 学会在MATLAB环境下对已知的数据进行处理。 二、实验方法 1. 求取数据的最大值或最小值。 2. 求取向量的均值、标准方差和中间值。 3.在MATLAB环境下,对已知的数据分别进行曲线拟合和插值。 三、实验设备 1.586以上微机,16M以上内存,400M硬盘空间,2X CD-ROM 2.MATLAB5.3以上含CONTROL SYSTEM TOOLBOX。 四、实验内容 1.在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。 2.在MATLAB环境下,选择合适的曲线拟合和插值方法,编写程序,对已知的数据分别进行曲线拟合和插值。 五、实验步骤 1. 在MATLAB环境下,将已知的数据存到数据文件mydat.mat中。 双击打开Matlab,在命令窗口(command window)中,输入一组数据:实验一数据处理方法的MATLAB实现 一、实验目的 学会在MATLAB环境下对已知的数据进行处理。 二、实验方法 1. 求取数据的最大值或最小值。 2. 求取向量的均值、标准方差和中间值。 3.在MATLAB环境下,对已知的数据分别进行曲线拟合和插值。 三、实验设备 1.586以上微机,16M以上内存,400M硬盘空间,2X CD-ROM 2.MATLAB5.3以上含CONTROL SYSTEM TOOLBOX。 四、实验内容

1.在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。 2.在MATLAB环境下,选择合适的曲线拟合和插值方法,编写程序,对已知的数据分别进行曲线拟合和插值。 五、实验步骤 1. 在MATLAB环境下,将已知的数据存到数据文件mydat.mat中。 双击打开Matlab,在命令窗口(command window)中,输入一组数据: x=[1,4,2,81,23,45] x = 1 4 2 81 2 3 45 单击保存按钮,保存在Matlab指定目录(C:\Program Files\MATLAB71)下,文件名为“mydat.mat”。 2. 在MATLAB环境下,利用MATLAB控制系统工具箱中的函数直接求取数据的最大值或最小值,以及向量的均值、标准方差和中间值。 继续在命令窗口中输入命令: (1)求取最大值“max(a)”; >> max(x) ans = 81 (2)求取最小值“min(a)”; >> min(x) ans = 1 (3)求取均值“mean(a)”; >> mean(x) ans =

基于MATLAB的EXCEL数据计算与分析

基于MATLAB的EXCEL数据计算与分析 潜刘方 摘要:再怎么样希望先看摘要,阅读本文需要一定的MA TLAB基础知识,不需要excel相关知识。结合本人近期工作上的需要测量计算,想偷懒就选择了利用MATLAB偷懒,于是便有了本文。本文首先利用MA TLAB读取数据,计算,将数据写入excel,然后花了很大的精力来根据实际需要画图,最后将图保存在excel所在的文件夹下。这个m文件可谓花了我不少的时间和精力。最后根据m文件的不足(不能将图形输入到excel文档当中),进一步弥补这不足,就有了exlink(也叫excel link),在网上搜索了相关的知识,发现很多关于exlink 的培训,觉得实在可笑,所以就将exlink的使用写的比较详细,以供读者自行分析体会。关键字:MATLAB excel exlink 接口 一、前沿 MATLAB是一款应用在各个领域的数学软件,最初叫做矩阵实验室,专用于矩阵的运算,后来的版本再各个领域都得到了很好的应用,比如:通信、电力电子、电机控制、运动控制、计算机控制、自动控制,DSP数字信号处理。但是MATLAB对于数据的处理与可视化是很多软件所不能及的。 EXCEL作为办公必备软件,能对简单数据分析计算与作图分析,但是处理复杂数据显得力不从心,比如三维作图就无法利用EXCEL作出;EXCEL本身的函数远远没有MATLAB 多,MATLAB作为数据有其独特的优势,集成了很多数学函数,包括数据拟合差值等。MATLAB 可以从EXCEL中读取数据,经过相关运算之后又可以将数据写入EXCEL,假如需要重复性的对excel可以利用MATLAB编写函数,每次只要运行MATLAB程序就可以完成,大大节省时间和精力。 另外,MATLAB还有与EXCEL的接口,叫做EXLINK,运用这个接口可以在excel中完成MATLAB函数的调用,还能传送数据给MATLAB,从MATLAB当中读取数据,从MATLAB 当中读取图形,使用方便,操作简单。 二、基于MATLAB的数据分析 数据分析操作流程主要分为三步:第一步,从excel中读取数据;第二部:利用MATLAB 大量函数对数据分析处理;第三步:将分析结果写入excel中。在整个过程中,不需要打开excel软件,操作十分方便,每次操作唯一要做就是修改excel所在的目录及文件名。主要函数如下(具体使用方法可在MATLAB命令窗口输入help +函数名查看):Xlsread 从excel中读数据 Xlswrite 向excel中邪数据 num2str 将数字转换为字符串 strncmp 字符串比较 polyfit 数据拟合 polyval 具体数值代入求值 plot 作图

第6章MATLAB数据分析与多项式计算_习题答案

第6章MATLAB数据分析与多项式计算 习题6 一、选择题 1.设A=[1,2,3,4,5;3,4,5,6,7],则min(max(A))的值是()。B A.1B.3C.5D.7 2.已知a为3×3矩阵,则运行mean(a)命令是()。B A.计算a每行的平均值B.计算a每列的平均值 C.a增加一行平均值D.a增加一列平均值 3.在MATLAB命令行窗口输入下列命令: >>x=[1,2,3,4]; >>y=polyval(x,1); 则y的值为()。D A.5B.8C.24D.10 4.设P是多项式系数向量,A为方阵,则函数polyval(P,A)与函数polyvalm(P,A)的值()。D A.一个是标量,一个是方阵B.都是标量 C.值相等D.值不相等 5.在MATLAB命令行窗口输入下列命令: >>A=[1,0,-2]; >>x=roots(A); 则x(1)的值为()。C A.1B.-2C.1.4142D.-1.4142 6.关于数据插值与曲线拟合,下列说法不正确的是()。A A.3次样条方法的插值结果肯定比线性插值方法精度高。 B.插值函数是必须满足原始数据点坐标,而拟合函数则是整体最接近原始数据点,而不一定要必须经过原始数据点。 C.曲线拟合常常采用最小二乘原理,即要求拟合函数与原始数据的均方误差达到 极小。 D.插值和拟合都是通过已知数据集来求取未知点的函数值。 二、填空题 1.设A=[1,2,3;102030;456],则sum(A)=,median(A)=。 [152739],[456[ 2.向量[2,0,-1]所代表的多项式是。2x 2-1

2 3 .为 了求a x +b x +c =0的根,相应的命令是(假定a 、b 、c 值)。为了 将求得的根代回方程进行验证,相应的命令是。 x=roots([a,b,c]),polyval([a,b,c],x) 4.如果被插值函数是一个单变量函插值,相应的MATLAB 函数 是。一维,interp1 5.求曲线拟合多项式系数的函数是,计算多项式在给定点上函数值的函数 是。polyfit ,polyval 三、应用题 1.利用M A T L A B 提供的r a n d n 函数生 成符合 正态分 布的10× 5随A ,进行如下 操作: (1)A 各列元素的均值和标。 (2)A 的最大元素和最小元素。 (3)求A 每行元素的和以及全部元素之和。 (4对A 的每列元素按升序、每行元素按降序排序。 第一题: (1): A=randn(10,5) B=mean(A) C=std(A) (2): mx=max(max(A)) mn=min(min(A)) (3): sm=sum(A,2) sz=sum(sum(A)) (4): [Y,I]=sort(A,1) [Z,J]=sort(A,2); rot90(Z,1)'%旋转90度后,再转置便可得到每行按降序排列 2.已知多项式P1(x)=3x+2,P2(x)=5x 2-x+2,P3(x)=x 2-0.5,求: (1)P(x)=P 1(x)P2(x)P3(x)。 (2)P(x)=0的全部根。 (3)计算x i =0.2i(i=0,1,2,?,10)各点上的P(x i )。 第二题: (1): p1=[0,3,2]; p2=[5,-1,2]; 2

相关文档