77范文网 - 专业文章范例文档资料分享平台

数学建模竞赛中常用软件的操作(4)

来源:网络收集 时间:2018-11-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

在命令窗口输入: >> xdata = 100:100:1000;

ydata = 1e-03*[4.54,4.99,5.35,5.65,5.90,6.10,6.26,6.39,6.50,6.59]; beta0 = [0.1 0.1 0.2];

[beta,r,J] = nlinfit(xdata,ydata,'myfit3',beta0) ; beta 输出结果为:

beta =

0.0070 -0.0030 0.1012

这与例9结果( 0.0069 -0.0029 0.0809)很接近。

将其和前例的拟合曲线对比后可见,nlinfit函数的回归效果明显优于lsqcurvefit函数,对比结果见图4(红色曲线为nlinfit函数得到的回归曲线,蓝颜色的为lsqcurvefit函数得到的拟合曲线)。

-3 x 10 7 6.5 6 5.5 5 4.5 4 100

200 300 400 500 600 700 800 900 1000

图4 对比图

五、胞元数组与构架数组 1. 胞元数组

胞元数组的基本组分是胞元(Cell)。每一胞元在数组中平等,以下标区分。同一胞元数组中不同胞元可以存放不同类型和不同大小的数据,如任意维数值数组,字符串数组、符号对象等。

胞元标识(Cell Indexing):例A(2,3)表示A胞元数组第2行第3列的胞元;

胞元内容编址(Content Adressing):例A{2,3}表示A胞元数组第2行第3列的胞元存放的内容。

例如 clear

C_str='这是胞元数组创建例子';

R=reshape(1:9,3,3); Cn=[1+2i];

%按列排序

S_sym=sym('sin(-3*t)*exp(-t)'); %创建胞元数组方法之一 B{1,1}=C_str; B{1,2}=R; B{2,1}=Cn; B{2,2}=S_sym; %胞元的援引 a=B(1,2) class(a) a =

[3x3 double] ans = cell

%胞元内容的援引 b=B{1,2} class(b) b =

1 4 7 2 5 8 3 6 9 ans = double 2. 构架数组

组织数据能力比胞元数组更强,富于变化。

架构数组的基本组分是构架(structure)。数组中每个架构平等,以下标区分。构架必须在划分“域”后才能使用。数据不能直接存放于构架,而只能存放在域中。构架的域可以存放任何类型、任何大小的数组(如任意维数值数组,字符串数组、符号对象等),不同构架的同名域中存放的内容可以不同。

%

%

构架和域名间有小黑点“.”。 构架数组演示

(1)直接对域赋值产生“单构架” clear

G.name='一号房'; G.volume=2000;

G.temperature=[31.2,30.4,31.6,28.7];

G.humidity=[62.1,59.5,57.7,61.5;63,60,58.1,62.3]; (2)向第二个构架赋值,形成构架数组 G(2).name='二号房'; G(2).volume=2400; (3)构架数组显示 G G =

1x2 struct array with fields: name volume temperature humidity (4)构架元素显示 G(1) ans =

name: '一号房' volume: 2000

temperature: [31.2000 30.4000 31.6000 28.7000] humidity: [2x4 double] (5)构架域的显示 G.humidity ans =

62.1000 59.5000 57.7000 61.5000

63.0000 60.0000 58.1000 62.3000 ans = []

对于单构架,输入构架名可输出该构架的域中的内容,非单构架通常只能得到该构架的结构信息;指令窗输入构架域名,显示每一构架的该域内容。

一般代数方程组的符号求解函数S=solve('eq1','eq2',?,'eqn','v1','v2',?,'vn')的结果S就是构架数组形式,例如:

>>S = solve('x+y=5','x-y=1','x','y') S =

x: [1x1 sym] y: [1x1 sym] >> S.x ans = 3 >> S.y ans = 2

六、图像处理

在全国大学生数学建模竞赛中,与图像处理有关的赛题有三道,分别是2001年A题《三维血管重建》,2008年A题《数码相机定位》,2013年B题《碎纸片的拼接复原》。

下面简单介绍图像处理中的几个简单函数。

MATLAB支持的图像格式有*.bmp,*.jpg,*.ico,*.pcx,*.png,*.tif等。 1. imread函数

imread函数用于读入各种图像文件,其调用格式为:

A = imread('filename',fmt)

其中filename为指定工作目录下的图像文件名,fmt为图像格式,可选值为bmp,jpg,ico,pcx,png,tif等,如果不指定,Matlab自动根据文件头确定。A为读取的图像矩阵。

2. imwrite函数

imwrite函数用于输出图像,其调用格式为:

imwrite(A, 'filename',fmt)

将矩阵A写入当前工作目录下的filename.fmt文件。

3. imshow函数

该函数是最常用的显示各种图像的函数,其调用格式有: imshow(I,n):用于显示灰度图像,n为灰度级,默认为256;

imshow(I,[low,high]):用于显示灰度图像,[low,high]为图像的数域,如不清楚,可使用空向量[]。

例如,输入

>> I = imread('cameraman.tif'); imshow(I,[]) 4. imnoise函数

该函数可以对图像添加一些典型的噪声。其调用格式为:

imnoise(I, 'type',parameters)

其中type为噪声类型,包括: 'gaussian':高斯白噪声, 'localvar' :0均值高斯白噪声 'poisson':泊松噪声 'salt & pepper':椒盐噪声 'speckle':乘性噪声 在命令窗口输入:

>> I1 = imread('cameraman.tif'); subplot(2,2,1);imshow(I1);title('原始图像'); I2 = imnoise(I1, 'gaussian'); subplot(2,2,2);imshow(I2);title('高斯白噪声'); I3 = imnoise(I1,'salt & pepper');subplot(2,2,3); imshow(I3);title('椒盐噪声'); I4 = imnoise(I1,'speckle');subplot(2,2,4);imshow(I4);title('乘性噪声'); 5. fspecial函数

fspecial函数用于建立预定义的滤波算子,其语法格式为: h = fspecial('type') h = fspecial('type',para)

其中type指定算子的类型,para指定相应的参数;

type的类型有:

(1) 'average':为均值滤波,参数为hsize代表模板尺寸,默认值为[3 3]。 (2) 'disk':为圆形区域均值滤波,参数为radius代表区域半径,默认值为5。

(3) 'gaussian':为高斯低通滤波,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma为滤波器的标准值,单位为像素,默认值为0.5。

(4) 'laplacian' :为拉普拉斯算子,参数alpha用于控制算子形状,取值范围为[0,1],默认值为0.2。

(5) 'log' :为拉普拉斯高斯算子,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数学建模竞赛中常用软件的操作(4)在线全文阅读。

数学建模竞赛中常用软件的操作(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/291941.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: