数模菜鸟教程

合集下载

MATLABappdesigner菜鸟进阶学习(三)

MATLABappdesigner菜鸟进阶学习(三)

MATLABappdesigner菜鸟进阶学习(三)3.创建确认对话框 在app设计中,确认对话框是不可缺少的存在,如关闭app前的提醒、修改参数之后的提醒,可以规避在操作过程中的失误,从⽽避免数据等的丢失3.1 创建对话框语法uiconfirm(f,message,title)uiconfirm(f,message,title,Name,Value)selection = uiconfirm(___) 其中,uiconfirm(,,)在⽬标图窗f中显⽰⼀个 App 内模态确认对话框。

此语法显⽰供⽤户选择的两个选项 OK 和 Cancel。

显⽰该对话框时,对话框后⾯的图窗不可访问,但可以访问 MATLAB® 命令提⽰。

uiconfirm(,,,) 显⽰确认对话框,其中有⼀个或多个可⾃定义对话框外观和⾏为的 Name,Value 对组参数。

例如,您可以在对话框中指定⼀组⾃定义选项,⽽不是默认的 OK 和 Cancel。

selection = uiconfirm(___) 以字符向量形式返回⽤户的选择。

可以结合上述任⼀语法使⽤ selection 输出参数。

如果使⽤此语法,显⽰对话框时 MATLAB 命令提⽰将不可访问。

message:要显⽰的消息,指定为字符向量、字符向量元胞数组或字符串数组。

当消息有多⾏⽂本时,指定元胞数组或字符串数组。

数组中的每个元素对应于⼀⾏⽂本。

title:对话框标题,指定为字符向量或字符串标量。

指定可选的、以逗号分隔的 Name,Value 对组参数。

Name 为参数名称,Value 为对应的值。

Name 必须放在引号中。

您可采⽤任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN 所⽰。

3.2 详述 根据不同的应⽤场景,对话框的个性化设计分别为下述⼏种3.2.1 指定不同的图标selection = uiconfirm(app.UIFigure,'Close document?','Confirm Close',...'Icon','warning'); 当你点击ok后,uiconfirm 将以字符向量形式返回该选项,即返回“ok”。

matlab数学建模程序代码

matlab数学建模程序代码

matlab数学建模程序代码【实用版】目录1.MATLAB 数学建模概述2.MATLAB 数学建模程序代码的基本结构3.常用的 MATLAB 数学建模函数和命令4.MATLAB 数学建模程序代码的编写流程5.MATLAB 数学建模程序代码的示例正文一、MATLAB 数学建模概述MATLAB(Matrix Laboratory)是一款强大的数学软件,广泛应用于数学建模、数据分析、可视化等领域。

通过 MATLAB,用户可以方便地进行数学计算、编写程序以及绘制图表等。

在数学建模领域,MATLAB 为研究人员和工程师提供了丰富的工具箱和函数,使得数学模型的构建、求解和分析变得更加简单高效。

二、MATLAB 数学建模程序代码的基本结构MATLAB 数学建模程序代码通常分为以下几个部分:1.导入 MATLAB 库:在建模过程中,可能需要使用 MATLAB 提供的某些库或工具箱,需要在代码开头进行导入。

2.定义变量和参数:在建模过程中,需要定义一些变量和参数,用于表示模型中的各个要素。

3.建立数学模型:根据实际问题,编写相应的数学表达式或方程,构建数学模型。

4.求解模型:通过调用 MATLAB 内置函数或使用自定义函数,对数学模型进行求解。

5.分析结果:对求解结果进行分析,提取所需的信息,例如计算均值、方差等统计量。

6.可视化结果:使用 MATLAB 绘制图表,将结果以直观的形式展示出来。

三、常用的 MATLAB 数学建模函数和命令MATLAB 提供了丰富的数学建模函数和命令,例如:1.线性规划:使用`linprog`函数求解线性规划问题。

2.非线性规划:使用`fmincon`或`fsolve`函数求解非线性规划问题。

3.优化问题:使用`optimize`函数求解优化问题。

4.数据处理:使用`mean`、`std`等函数对数据进行统计分析。

5.图表绘制:使用`plot`、`scatter`等函数绘制各种图表。

数学建模-(货机装运Lingo)

数学建模-(货机装运Lingo)
成本。
约束条件
在货机装运问题中,通常需要考虑 多个约束条件,如货机的载重限制、 货物的体积限制、货物的装卸顺序 等。
优化目标
优化目标可以是最大化货机的装载 量、最小化装载成本、最大化利润 等。
数据分析与预处理
数据收集
数据清洗
收集与货机装运问题相关的数据,包括货 物的重量、体积、价值等信息,以及货机 的载重、容积等限制条件。
数据输入输出
介绍如何使用Lingo进行数据输入和 结果输出,包括数据文件的读写、图 形化界面的使用等。
Lingo在货机装运问题中的应用
问题描述
阐述货机装运问题的背景和实际意义,明确问题的目标和约束条件。
建模过程
详细讲解如何使用Lingo对货机装运问题进行数学建模,包括定义变 量、建立目标函数和约束条件等步骤。
货机装运是物流领域的重要问题,涉 及到如何有效利用货机容量,将不同 规格、重量的货物进行合理搭配,以 达到最优的装载方案。
提高运输效率
通过数学建模对货机装运问题进行优 化,可以提高货物的运输效率,减少 运输成本,为企业带来经济效益。
建模的重要性和应用
重要性
数学建模是一种将实际问题抽象化、形式化的方法,通过建立数学模型,可以对问题进行深入分析,找出问题的 本质和规律,为解决问题提供科学依据。
应用
数学建模在物流、交通、金融、工程等领域有着广泛的应用。在货机装运问题中,数学建模可以帮助企业制定最 优的装载方案,提高运输效率,降低成本。同时,数学建模也可以应用于其他类似的问题,如车辆路径问题、背 包问题等。
02 问题描述与数据分析
02 问题描述与数据分析
货机装运问题描述
货机装运问题
货机装运问题是一个经典的优化 问题,涉及到如何有效地将货物 装入货机以最大化利润或最小化

2017数学建模d题第一问代码

2017数学建模d题第一问代码

2017数学建模D题第一问的代码部分是模拟实现了一个特定的数学模型,用来解决相关问题。

数学建模是一门重要的学科,它主要研究如何用数学方法解决实际问题。

在数学建模比赛中,编写代码是不可或缺的一部分,能够有效地帮助解决问题并进行模拟实验。

下面我们将分步介绍2017数学建模D题第一问的代码部分。

一、问题分析在编写代码前,首先需要对题目进行仔细的分析和理解。

2017数学建模D题第一问要求建立数学模型,模拟实现某一过程,具体涉及到的数学知识和模型应用需要充分理解。

二、数据采集和预处理在编写代码时,需要采集相关的数据,并对数据进行预处理。

这一步骤包括数据的清洗、标准化等工作,确保数据的准确性和合理性。

三、模型建立根据题目要求,我们需要建立一个数学模型,来描述所涉及的过程。

模型的建立需要基于相关的数学原理和理论,包括概率统计、微积分、线性代数等。

四、算法设计在模型建立的基础上,需要设计相应的算法来实现模拟过程。

算法设计要考虑到模型的复杂性和实际问题的需求,确保算法的高效性和准确性。

五、代码实现根据模型和算法的设计,编写代码实现模拟过程。

编程语言的选择要根据具体问题和需求来确定,常用的编程语言包括Python、Matlab、C++等。

六、实验与结果分析实现代码后,需要进行相应的实验,并对实验结果进行分析。

分析结果需要跟题目要求进行对比,并对模型的有效性进行验证。

七、结论与讨论基于实验结果的分析,得出相应的结论,并对模型的优化和改进进行讨论。

结论要符合题目要求,并具有一定的实际意义。

总结:2017数学建模D题第一问的代码部分是一个复杂而又重要的过程,需要充分理解题目要求和相关数学知识,并进行严谨的分析和设计。

通过以上步骤的实施,可以完成对数学模型的建立和模拟实现,为实际问题的解决提供有效的方法和工具。

希望这篇文章能对读者对2017数学建模D题第一问的代码部分有所帮助。

八、优化与拓展在初步实现代码的基础上,我们可以进一步优化和拓展代码。

matlab数学建模常用模型及编程

matlab数学建模常用模型及编程

matlab数学建模常用模型及编程摘要:一、引言二、MATLAB 数学建模的基本概念1.矩阵的转置2.矩阵的旋转3.矩阵的左右翻转4.矩阵的上下翻转5.矩阵的逆三、MATLAB 数学建模的常用函数1.绘图函数2.坐标轴边界3.沿曲线绘制误差条4.在图形窗口中保留当前图形5.创建线条对象四、MATLAB 数学建模的实例1.牛顿第二定律2.第一级火箭模型五、结论正文:一、引言数学建模是一种将现实世界中的问题抽象成数学问题,然后通过数学方法来求解的过程。

在数学建模中,MATLAB 作为一种强大的数学软件,被广泛应用于各种数学问题的求解和模拟。

本文将介绍MATLAB 数学建模中的常用模型及编程方法。

二、MATLAB 数学建模的基本概念在使用MATLAB 进行数学建模之前,我们需要了解一些基本的概念,如矩阵的转置、旋转、左右翻转、上下翻转以及矩阵的逆等。

1.矩阵的转置矩阵的转置是指将矩阵的一行和一列互换,得到一个新的矩阵。

矩阵的转置运算符是单撇号(’)。

2.矩阵的旋转利用函数rot90(a,k) 将矩阵a 旋转90 的k 倍,当k 为1 时可省略。

3.矩阵的左右翻转对矩阵实施左右翻转是将原矩阵的第一列和最后一列调换,第二列和倒数第二列调换,依次类推。

matlab 对矩阵a 实施左右翻转的函数是fliplr(a)。

4.矩阵的上下翻转matlab 对矩阵a 实施上下翻转的函数是flipud(a)。

5.矩阵的逆对于一个方阵a,如果存在一个与其同阶的方阵b,使得:a·bb·a=|a|·|b|·I,则称矩阵b 是矩阵a 的逆矩阵。

其中,|a|表示矩阵a 的行列式,I 是单位矩阵。

在MATLAB 中,我们可以使用函数inv(a) 来求解矩阵a 的逆矩阵。

三、MATLAB 数学建模的常用函数在MATLAB 数学建模过程中,我们经常需要使用一些绘图和数据处理函数,如绘图函数、坐标轴边界、沿曲线绘制误差条、在图形窗口中保留当前图形、创建线条对象等。

数学建模实用教程

数学建模实用教程

数学建模实用教程一、原理主成分分析的目标是通过线性变换将高维数据转换为低维特征,同时最大化样本间的方差。

它的基本思想是通过找到方差最大的投影方向,将原始数据的维度降低;然后再在新的低维空间中找到方差最大的投影方向。

通过不断迭代,可以得到一组新的主成分,它们是原始数据中方差最大的线性组合。

二、数学模型设我们有一个包含n个样本和m个特征的数据矩阵X,其中每个样本用一个m维向量表示。

首先,我们需要将数据进行中心化处理,即减去每个特征的均值。

然后,计算数据的协方差矩阵C。

协方差矩阵的第i行第j列元素表示特征i和特征j之间的协方差。

接着,我们需要求解协方差矩阵的特征值和特征向量。

特征值表征了特征的方差,特征向量是协方差矩阵的特征值对应的单位化向量。

我们选择特征值最大的前k个特征向量作为主成分,它们可以表示数据的最大方差。

将原始数据投影到这些主成分上,就得到了降维后的数据。

三、实际应用主成分分析在实际应用中有广泛的应用。

首先,它可以用于降维。

通过保留主成分的一部分,可以将高维数据降低到低维,减少数据中的噪声和冗余信息。

其次,主成分分析还可以用于特征提取。

通过选择主成分,我们可以得到较少的特征,这些特征能够更好地表示原始数据的信息。

在图像和语音处理等领域,主成分分析可以用于特征提取和分类。

此外,主成分分析还可以用于数据可视化。

将数据投影到主成分上,可以将高维数据可视化为二维或三维的图形,以帮助我们更好地理解数据的结构和关系。

除了上述应用之外,主成分分析还可以与其他建模技术相结合,如聚类和分类等。

通过将主成分作为输入,我们可以得到更好的聚类和分类效果。

此外,主成分分析还可以用于异常检测和模式识别等领域。

总结:主成分分析是一种常用的数学建模技术,它可以用于降维、特征提取和数据可视化等多种应用。

本文介绍了主成分分析的基本原理、数学模型以及实际应用。

希望能帮助读者更好地理解和应用主成分分析。

matlab数学建模程序代码

matlab数学建模程序代码

matlab数学建模程序代码
当进行数学建模时,MATLAB是一个强大的工具,用于实现和测试模型。

下面是一个简单的MATLAB代码示例,演示如何使用MATLAB进行一维线性回归建模:
```matlab
%生成示例数据
x=[1,2,3,4,5];
y=[2.8,3.9,4.8,5.5,6.3];
%进行一维线性回归
coefficients=polyfit(x,y,1);
slope=coefficients(1);
intercept=coefficients(2);
%绘制原始数据和回归线
scatter(x,y,'o','DisplayName','原始数据');
hold on;
plot(x,polyval(coefficients,x),'r-','DisplayName','回归线');
hold off;
%添加标签和图例
xlabel('X轴');
ylabel('Y轴');
title('一维线性回归建模示例');
legend('show');
%输出回归方程的系数
fprintf('回归方程:y=%.2fx+%.2f\n',slope,intercept);
```
此代码生成了一些示例数据,然后使用一维线性回归对数据进行建模。

回归方程的系数将被计算,并且原始数据与回归线将在图上显示。

请注意,这只是一个简单的示例,实际上,你可能需要根据你的具体问题修改代码。

matlab菜鸟教程

matlab菜鸟教程

matlab菜鸟教程Matlab是一种强大的数值计算和科学数据可视化软件。

它被广泛应用于工程、科学和金融等领域。

本教程将介绍Matlab的基本语法、常用函数和数据处理技巧,帮助初学者快速上手使用Matlab进行编程和数据分析。

1. Matlab环境搭建安装Matlab:在MathWorks官网下载并安装Matlab软件,按照向导进行安装。

打开Matlab:双击桌面上的Matlab图标或在开始菜单中找到Matlab并点击打开。

2. Matlab基本语法变量和常量:使用等号(=)将数值或表达式赋给变量。

例如:x = 5, y = sin(x)。

数据类型:Matlab支持多种数据类型,包括数值型、字符型和逻辑型等。

常用的数值类型有整数型、浮点型和复数型。

矩阵和数组:Matlab中的基本数据结构是矩阵和数组。

可以使用方括号([])定义矩阵和数组,并进行矩阵运算。

函数调用:Matlab提供了丰富的内置函数,可以直接调用进行数值计算、数据处理和图形绘制等操作。

条件语句:使用if语句进行条件判断,根据不同的条件执行不同的操作。

循环语句:使用for循环和while循环重复执行一段代码,根据循环条件来控制循环的执行次数。

3. Matlab常用函数数值计算:Matlab提供了多种数值计算函数,如sin、cos、exp、log等,用于计算三角函数、指数函数和对数函数等。

数据处理:Matlab提供了丰富的数据处理函数,如mean、sum、max、min等,用于计算数组的均值、总和、最大值和最小值等。

图形绘制:Matlab可以绘制各种类型的图形,如线图、散点图、柱状图和饼图等。

可以使用plot、scatter、bar、pie等函数进行图形绘制。

数据导入和导出:Matlab可以方便地导入和导出各种数据格式,如文本文件、Excel文件和图像文件等。

可以使用readtable、writetable、imread、imwrite等函数进行数据的读写操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数学建模竞赛新手教程(1)--数模竞赛是什么数学建模竞赛,就是在每年叶子黄的时候(长沙的树叶好像一年到头都是绿的)开始的一项数学应用题比赛。

大家都做过数学应用题吧,不知道现在的教育改革了没有,如果没有大变化,大家都应该做过,比如说[树上有十只鸟,开枪打死一只,还剩几只],这样的问题就是一道数学应用题(应该是小学生的吧),正确答案应该是9只,是吧?这样的题照样是数学建模题,不过答案就不重要了,重要的是过程。

真正的数学建模高手应该这样回答这道题。

“树上有十只鸟,开枪打死一只,还剩几只?”“是无声手枪或别的无声的枪吗?”“不是。

”“枪声有多大?”“80-100分贝。

”“那就是说会震的耳朵疼?”“是。

”“在这个城市里打鸟犯不犯法?”“不犯。

”“您确定那只鸟真的被打死啦?”“确定。

”“OK,树上的鸟里有没有聋子?”“没有。

”“有没有关在笼子里的?”“没有。

”“边上还有没有其他的树,树上还有没有其他鸟?”“没有。

”“有没有残疾的或饿的飞不动的鸟?”“没有。

”“算不算怀孕肚子里的小鸟?”“不算。

”“打鸟的人眼有没有花?保证是十只?”“没有花,就十只。

”“有没有傻的不怕死的?”“都怕死。

”“会不会一枪打死两只?”“不会。

“所有的鸟都可以自由活动吗?”“完全可以。

”“如果您的回答没有骗人,打死的鸟要是挂在树上没掉下来,那么就剩一只,如果掉下来,就一只不剩。

”不是开玩笑,这就是数学建模。

从不同的角度思考一个问题,想尽所有的可能,正所谓的智者千虑,绝无一失,这,才是数学建模的高手。

然后,数学建模高手的搭挡----论文写作高手(暂称为写手吧),会把以上的思想用最好的方式表达出来。

一般的写手会直接把以上的文字放到论文里就成了。

但是专职的数学建模论文的写手不会这样做,她们会先分析这些思想,归整好条理;然后,她们会试着用图画来深入浅出的表达这些思想,或者再使用一些表格;这些都是在Word中进行,当然,如果有不喜欢Microsoft 的朋友或是国粹主义者喜欢用WPS什么的当然也可以。

她们都是这一行的专家,相信Word 什么的使用技巧,都够她们写一篇论文的了。

她们不一定会打字,但是输入公式的速度确是一流的。

她们一定会用一种画图软件,不管是Visio还是SmartDraw,她们都会用来明确而清晰的表达自己的思想。

好了,有了思想,也有了表达思想的人,还少一样东西----实现。

屈原老哥就有那么多的怀疑与问题,作为数学建模竞赛的评委当然也不是好骗的,不会那么容易的相信高手们的话。

所以要一个编程高手实现之(暂称为程序员吧)。

就上面所说的问题,程序员会编一个仿真的程序,实现以上所有的情况。

这个程序是这样子的,他对以上所提的每一个选项提供了选择接口,比如说,我们可以选择枪的声音的分贝数,可以从80到100分贝调节,或者干脆从0到200db均可,调节方式是无级变速方式,当然,电脑太慢,在遍历的时候可能要指定步长,嘿嘿,所以,最好买个好电脑,CPU一定不要用赛扬的,要用奔腾的,另外,为了程序员的安全,还要用液晶的显示器,要有UPS不间断电源,要有健康的座椅.....哈哈,扯远了。

仿真程序会尽一切可能按实际所限制的条件遍历所有的情况,看一看还剩下几只bird。

当然,这也不是实践。

真的做的绝的,会跑去烈士公园做实验,当然得拿一把枪,可以拿塑料子弹枪。

烈士公园离我们学校(路过就读于东点军校)很近,就在南门嘛。

那儿有一个地方养了很多鸽子。

虽然不能保证刚好10只鸽子,也不能保证刚好都在树上,但也可以将就着做实验,然后根距实验条件做一些修正。

哈哈,这样就完美了....把实践结果与仿真结果、理论结果做比较,再修改理论、仿真程序、论文,再做实验、做仿真,再比较,再修改,递归到时间的完结。

---------------------------to be continue------------------------------数学建模竞赛新手教程(2)--分工与合作我们应该如何分工?传统的标准答案是----数学,编程,写作。

但是对于每一个参加过数学建模竞赛的同学来说,感悟各不相同,所以答案也各不相同。

下面就是我的一家之言,有经验的朋友也可以一起讨论一下。

分工不用那么明确。

但有个前提是大家关系很好。

不然的话,很容易产生矛盾。

提醒一点,在搞竞赛的那几天,睡不好觉,心情急躁,很容易与搭档们发生冲突。

分工太明确了,会让人产生依赖思想,不愿去动脑子。

假如写手只是实现一个打字员的功能,把数模高手的思想表达出来,那是不够的,写手要有自己的思想,能够检查对方的错误,能够提出自己的思想。

按我的想法,理想的分工是这样的。

数学建模竞赛小组中的每一个人,都能胜任其它人的工作,就算小组只剩下她(他)一个人,也照样能够搞定数学建模竞赛。

在竞赛中的分工,只是为了提高工作的效率,做出更好的结果,并不是由于能力不适合做别的工作。

我一直都这么认为,只有能够独当一面的人,才能更好的与他人合作。

其实想想也应该是这样的,在以后的学习、工作、研究中,数学能力、编程能力、论文写作能力,哪一项是可以缺少的呢?当然,现实并非如此。

我们很难找到三个这样的人凑到一起。

所以,凑合着用吧,我给一点儿建议。

三个人中,一定要有一个人脑子比较活,善于思考问题,这个人,嗯,免强归于数学方面吧;一定要有一个人会编程序,能够实现一些算法。

这就够了,另外需要有一个论文写的比较好,不过写不好也没关系,也可以学嘛,多看一看别人的优秀论文,多用几次Word ,Visio就成了。

(强烈推荐一篇论文《Word在论文写作中的技巧》,这篇文章我这儿有,不过怎么让大家看到呢?待我想想,网上应该能搜到吧)。

说到看论文啊,我真是觉得,优秀的论文就像《九阴真经》一样,看了之后会让你功力大增的。

大家一定要多看,特别是想在数学建模竞赛中取得好成绩的朋友。

看过论文之后,明白的不仅仅是论文要怎么写,也在同时学到了作者的思考方式。

我建议,有决心的朋友不如背几篇优秀论文。

常常有人问,搞数学建模竞赛是不是需要我学习很多知识啊?比如《图论》、《概率论》、《神经网络》、《组合数学》、《小波分析》、《泛函》、《最优化》.....我的回答是,一门都不用,甚至连高等数学都可以不学,有我么多时间去学这么多课程,还不如把时间拿来去看懂别人的论文呢。

很多优秀的论文,其高明之处并不是用了多少数学知识,而是思维比较全面、帖合实际、能解决问题或是有所创新。

有时候,在论文中可能碰见一些没有学过的知识,怎么办?现学现用呗,在优秀论文中用过的数学知识就是最有可能在数学建模竞赛中用到的,你当然有必要去翻一翻啦。

有些同学觉得,参加数学建模竞赛的目的就是为了提高一下自己的数学水平,或是别的水平,我不以为然。

既然参加数学建模竞赛,其目的就应该是,而且是强烈的目的,去拿一等奖。

这样,会取得好成绩的。

分工就说到这儿,下面讲合作。

合作真的很难,哈哈,我也没心得。

上次合作做数模,我差点儿被气爆了,可能是我耐性不够吧。

我只能说一句话----以大局为重。

我想,如果合作者中有一个是小mm,肯定就不一样了吧,希望大家合作愉快!---------------------------to be continue------------------------------数学建模竞赛新手教程(4)--实战在竞赛开始的前一天,我和两位搭挡就开始往招待所里面搬运必要的作战武器了。

列个清单吧:>数学手册一套(5册)每一册都有一个拳头那么厚>高等数学教科书(东点军校出版),概率论(复旦大学),数值分析(东点军校),Matlab的一些参考书,C语言教程(谭浩强的那本),等等等等>三台自己的电脑,都是赛扬533、566之类的配置,且均有网卡、UPS不间断电源及网线(当时用的是同轴电缆),一个Modem。

软件有Matlab,VisualC++,Microsoft Word,Windows 2000操作系统(当时还没有学会Visio,其它软件好像就没有什么了)>从学院的机关里借了一台HP的Lasier Jet6.0打印机>.......这么多东西当然不是人力所能承受的,还好学校给了辆不大不小的车。

一却准备就绪,我们就入住了学校南门外的招待所里(以前条件一般,具说现在已经改建的上档次了哈哈,一般人住不上)。

老师告诉我们第二天早上8:00从网上Down题目,但不知道是谁传来了一个消息,说晚上题目就有可能从网上上着。

于是整个晚上我们都没有睡安稳,时不时上一下网,看一看能不能下载赛题了。

太是最终还是在第二天早上8:00才搞到题目/:)数学建模竞赛一般有三道题目,其中有两道是本科组的,两道是专科组的。

专科组与本科组有一道题是相同的。

题目分别是:血管的三维重建,公交车调度问题。

这两道题得选一道做。

选哪一道呢?仔细研究了一下,我们发现,公交车调度是一个最优化的问题,而血管的三维重建偏重于算法。

与是我们三人毫不犹豫的选择了血管的三维重建。

附带说一句,原因是什么呢?因为我们曾在一年前也做过一个最优化的问题,那一次是钢管运输问题,做的奇差,于是大家心有余悸,尽量不选这类题目。

(下面附上此题目)==============================================================题目见此帖:/newbbs/dispbbs.asp?boardID=3&ID=87===============================================================血管的三维重建,遇见的第一个困难就是----怎么把这些bmp的图像给读进来,存为二进制的矩阵?一开始,我们去图书馆找到了《bmp文件格式》的书,准备利用C程序把bmp给读出来。

刚准备着手去做的时候,我们却意外的发现Matlab中有现成的函数imread可以使!真是天助我也,马上把所有100张bmp图片给读了进来,把每一个切片图的bmp文件转化为一个512×512的0,1矩阵。

并利用save函数,打开ASCII开关,把每一个矩阵存都存为了txt的文档。

这样,C程序就可以直接使用了。

在上面的过程中,我们发觉题中给的bmp的命名不太好,它是从0 ,1 ,2......到99的,我们把这些名字改为了01,02,03,04,....99,把所有的文件名都改成了两位的,方便操作。

接下来就是如何得出结果了。

首先我们在图书馆里查了很久,看有没有论文解决相类似的问题。

不但要查中文的,还要查英文的。

顺便说一句,英语真的很重要,在网上,英文更是当之无愧的霸主,想利用网络查找资料,英语不好则寸步难行。

我们发现了医学上的CT成像技术有可以借鉴的地方。

这些资料不一定有用,但能够很好的开拓我们的思路,花时间在上面是值得的。

相关文档
最新文档