matlab的程序设计实例解析

2019-08-02 00:16

MATLAB程序设计方法及若干程序实例

樊双喜

(河南大学数学与信息科学学院 开封475004)

摘 要 本文通过对 MATLAB 程序设计中的若干典型问题做简要的分析和总结,并 在此基础上着重讨论了有关算法设计、程序的调试与测试、算法与程序的优化以 及循环控制等方面的问题.还通过对一些程序实例做具体解析,来方便读者进行 编程训练并掌握一些有关 MATLAB 程序设计方面的基本概念、基本方法以及某些 问题的处理技巧等.此外,在文章的最后还给出了几个常用数学方法的算法程序, 供读者参考使用.希望能对初学者进行 MATLAB 编程训练提供一些可供参考的材 料,并起到一定的指导和激励作用,进而为MATLAB编程入门打下好的基础. 关键字 算法设计;程序调试与测试;程序优化;循环控制

1 算法与程序

1.1 算法与程序的关系

算法被称为程序的灵魂,因此在介绍程序之前应先了解什么是算法.所谓算 法就是对特定问题求解步骤的一种描述.对于一个较复杂的计算或是数据处理的 问题,通常是先设计出在理论上可行的算法,即程序的操作步骤,然后再按照算法 逐步翻译成相应的程序语言,即计算机可识别的语言.

所谓程序设计,就是使用在计算机上可执行的程序代码来有效的描述用于 解决特定问题算法的过程.简单来说,程序就是指令的集合.结构化程序设计由于 采用了模块分化与功能分解,自顶向下,即分而治之的方法,因而可将一个较复杂 的问题分解为若干子问题,逐步求精.算法是操作的过程,而程序结构和程序流程 则是算法的具体体现. 1.2 MATLAB语言的特点

MATLAB 语言简洁紧凑,使用方便灵活,库函数极其丰富,其语法规则与科技 人员的思维和书写习惯相近,便于操作.MATLAB 程序书写形式自由,利用其丰富

的库函数避开繁杂的子程序编程任务,压缩了很多不必要的编程工作.另外,它的 语法限制不严格,程序设计自由度大.其最大的特点是以矩阵运算为最强,而数值 的矩阵化又为运算和处理提供了方便.除此之外,MATLAB 还有着非常强大的绘图 功能.

1.3 MATLAB程序设计练习

MATLAB 有着丰富的库函数 ,一般情况下应了解并学会使用一些常用的库函 数,至少应熟悉函数库中都有哪些常用函数,当需要时可以现学现用.或者能对一 些经典函数做一定的改造,以达到解决某一特定问题的目的.但,在大多情况下还 需要自己编写程序去处理形形色色的问题.下面就先从一些较简单的程序入手来 熟悉MATLAB的编程方式.

例1 一个分类统计函数的设计(分类统计_1)

编写一个函数,统计出一组有序(按升序或降序排列)数字中每种数字的个 数,并返回数字种类数.

分析:设待统计数组为x,因为x有序,所以在设计算法时应抓住这个特点. 若用 s1 记录已统计出的数字,则,在对 x 中的数字进行遍历时,每次只需让 x(i) 与 s1 中的最后一个数字进行比较就可以了,若相等,则对应计数器加 1,若不等, 则说明测到新数,应开辟新的存储单元.其算法程序如下: function [s,k]=FLTJ_1(x)

%x为待统计的一组有序数,返回值s为2列的数组, 第一列为不同种类的数字 %第二列为对应数字的个数, k记录统计出的数字种类数目 n=length(x); s1=x(1); s2=1; k=1;

% s1记录测到的新数字,给其赋初值为x的第一个数字 % s2记录s1中每个数字的个数,赋初值为x(1)的初始个数1 % k记录已统计出的数字种类数,初值赋为1

for i=2:n % 从第2项开始遍历数组x

if x(i)==s1(k)

% 如果x(i)与已测出的最后1个数字相同,

s2(k)=s2(k)+1; % 则对应的计数器加1 else

% 否则,则说明测到新数字

k=k+1; % k值加1

s1=[s1;x(i)]; % 将此新数并入s1, s2=[s2;1]; %对应的计数器为1 end end s=[s1,s2];

% 将s1与s2拼接成一个两列的数组s

程序运行如下(“”代表回车,下同.) >> x=[1,2,2,3,3,4,5,5]; >> [s,k]=FLTJ_1(x) s =

1 2 3 4 5 k =

5

例2 一个数字游戏的设计

有这样一个数字游戏:在一个 2010 的矩阵中,0~99 这 100 个数顺序排列 在奇数列中(每20个数组成一列),另有100个图案排列在偶数列中,这样每个 数字右边就对应一个图案.你任意想一个两位数a,再让a减去它的个位数字与十 位数字之和得到一个数b,然后,在上述矩阵的奇数列中找到b,将b右边的图案记 在心里,最后点击指定的按钮,你心里的那个图案将被显示.

下面我们就来编写程序模拟一下这个小游戏,以[0,1]之间的小数代替矩阵 中的图案,由MATLAB程序实现如下: 程序I

% “测心术”游戏 format short a=1;t=0;

1 2 2 1 2


matlab的程序设计实例解析.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《藤野先生》教学案例分析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: