Matlab:程序设计

这篇具有很好参考价值的文章主要介绍了Matlab:程序设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

脚本

Matlab命令执行方式有交互式的命令执行与脚本两种方式。交互式的命令执行方式,在命令行窗口逐条输入命令,MATLAB逐条解释执行;而脚本方式,将有关命令编成程序存储在一个扩展名为.m的文件中,每次运行该脚本,Matlab就会自动依次执行脚本中的命令。

脚本的编辑

首先,在编辑脚本之前,先了解Matlab的编辑器。Matlab编辑器界面包括功能区和编辑区两个部分。如图:

功能区:
Matlab:程序设计

编辑区:
Matlab:程序设计

然后,选择启动Matlab编辑器的方式:

  • 点击Matlab桌面的“主页”,点击选项卡工具条中的“新建脚本”
  • Matlab命令行窗口中输入命令:
    edit 文件名

最后,进行编辑脚本。建立一个脚本,其功能是:用两个实变量R、M生成复变量RM,然后运行该脚本。建立脚本文件并以文件名setcomp.m保存在当前目录下。

%示例:在指定的Matlab工作目录下,对命令窗口进行输入:
>> edit setcomp
%创建文件名后会自动跳转在编辑器下,然后输入如下代码并保存:

R=[1,2,3;4,5,6];
M=[11,12,13;14,15,16];
RM=complex(R,M);

>> %再在命令行窗口中输入脚本文件名,按Enter运行:
>> setcomp
>>%运行后,再输入RM,查看结果:
>> RM

RM =

   1.0000 +11.0000i   2.0000 +12.0000i   3.0000 +13.0000i
   4.0000 +14.0000i   5.0000 +15.0000i   6.0000 +16.0000i

程序控制结构

程序控制方式是指在程序控制下进行的数据传递方式。程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。其中,程序控制结构包括顺序、选择、循环这三种的基本控制结构。另外,每种结构仅有一个入口和出口。由这3种基本结构组成的多层嵌套程序称为结构化程序。

顺序结构

顺序结构的程序设计是最简单的,按照解决问题的顺序写出相应的语句,计算机按此顺序逐条执行语句,当一条语句执行完毕,控制自动转到下一条语句。

数据的输入
input()函数:通过键盘的输入获取数据
调用格式:data = input(提示信息),其中,提示信息为字符串,用于提示用户输入相应的数据。
注:若要输入字符串,需要前后加单撇号或双引号,界定字符串的起始和结束;或调用另一种格式:data = input(提示信息,‘s’)

数据的输出
disp()函数:用于在命令窗口显示变量和表达式的值
调用格式:disp(输出项),其中,输出项既可以为字符串,也可以为矩阵。

%示例:
>> matrix1 = input('创建2x3阶元素全为1的矩阵:')
创建2x3阶元素全为1的矩阵:ones(2,3)

matrix1 =

     1     1     1
     1     1     1

>> name = input('请输入你的名字:')
请输入你的名字:'小明'

name =

    '小明'

>> %或者:
>>  name = input('请输入你的名字:','s')
请输入你的名字:小明

name =

    '小明'

>> disp(matrix1)
     1     1     1
     1     1     1

>> disp(name)
小明

选择结构

选择结构又称为分支结构。当程序执行到控制分支的语句时,首先判断条件,根据条件表达式的值选择相应的语句执行。分支结构包括单分支、双分支和多分支三种形式。

(1)单分支:
if  条件表达式
    语句块

(2)双分支:
if  条件表达式1
    语句块1
else
    语句块2
    
(3)多分支:
if  条件表达式1
    语句块1
elseif  条件表达式2
    语句块2
…
elseif  条件表达式n
    语句块n
else
    语句块n+1
end
%在指定的Matlab工作目录下,对命令窗口进行输入:
>> edit opt %创建脚本
%创建文件名后会自动跳转在编辑器下,然后输入如下代码并保存:

%示例:
%输入一个字符,若为大写字母,则输出其对应的小写字母;
%若为小写字母,则输出其对应的大写字母;
%若为数字字符则输出其对应数的平方,若为其他字符则原样输出。
str = input("请输入一个字符:","s");
if str >= 'A' && str <= 'Z'
    disp(lower(str));
elseif str >= 'a' && str <= 'z'
    disp(upper(str));
elseif str >= '0' && str <= '9'
    disp(str2double(str)^2);
else
    disp(str);
end

>> %再在命令行窗口中输入脚本文件名,按Enter运行:
>> edit opt
>> opt
请输入一个字符:S
s

循环结构

循环结构是当程序执行到循环控制语句时,根据循环判定条件对一组语句重复执行多次。循环结构可以看成是一个条件判断语句和一个向回转向语句的组合,可以实现有规律的重复计算处理。另外,循环结构的三个要素:循环变量、循环体和循环终止条件。

break语句用于终止循环的执行;continue语句控制跳过循环体中的某些语句。
(1)for语句:
for 循环变量=表达式1:表达式2:表达式3
     循环体语句
end
其中,表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。

(2)while语句:
while 条件表达式
       循环体语句
end
%在指定的Matlab工作目录下,对命令窗口进行输入:
>> edit NarcissisticNumber %创建脚本
%创建文件名后会自动跳转在编辑器下,然后输入如下代码并保存:

%示例:
%一个各位数字的立方和等于该数本身的3位整数称为水仙花数。输出全部水仙花数
Nar_num = []; %创建空矩阵存放结果
for n = 100:999
    bai = fix(n/100);            	%求n的百位数字
    shi = mod(fix(n/10),10);    	%求n的十位数字
    ge = mod(n,10);             	%求n的个位数字
    if n == bai^3+ shi^3 + ge^3
       Nar_num=[Nar_num,n];             	%存入结果
    end
end
disp(Nar_num)

>> %再在命令行窗口中输入脚本文件名,按Enter运行:
>> NarcissisticNumber
   153   370   371   407

函数

计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。函数能提高应用的模块性与代码的重复利用率。

函数文件

在Matlab中,扩展名为.m的文件称为M文件,是一种程序化的编程语言,分为脚本文件(scripts)和函数文件(functions)。而函数文件是在脚本文件的基础上多添加了一行函数定义行。

函数文件的基本结构
1.函数名的命名规则与变量名的命名规则相同;
2.有多个参数时,参数和参数之间用逗号分隔;
3.若输出参数多于一个,则应该用方括号括起来。

函数文件的基本格式
function 输出形参表=函数名(输入形参表)
注释说明部分
函数体语句

函数调用的基本格式
[输出实参表]=函数名(输入实参表)
函数调用时各实参出现的顺序,应与函数定义时形参的顺序一致

%点击"新建",再点击"函数",创建函数文件
%编写函数文件,求1/(m+1)+1/(m+2)++1/(m+n)1/m(m+1)+1/(m+1)(m+2)++1/(m+n−1)(m+n)。
function [s1,s2]=sumfraction(m,n)
%SUM  sumfraction.m calculates sum of fractions
%m          区间下界
%n          区间上界
%s1         1/(m+1)+1/(m+2)+...+1/(m+n)
%s2         1/m/(m+1)+1/(m+1)/(m+2)+...+1/(m+n-1)/(m+n)
s1=0;s2=0;
for k=m+1:m+n
    s1=s1+1/k;
    s2=s2+1/(k-1)/k;
end

>> %在命令窗口调用以上定义的函数,示例:
>> %1/(8+1)+1/(8+2)++1/(8+8)1/8*(8+1)+1/(8+1)(8+2)++1/(8+81)(8+8)>> %形参m、n对应的值分别为88>> [s1,s2]=sumfraction(8,8)

s1 =

    0.6629


s2 =

    0.0625

匿名函数

匿名函数是一种特殊的函数定义形式,不存储成函数文件。匿名函数的调用与标准函数的调用方法一样,但定义只能包含表达式。通常,匿名函数与函数句柄变量相关联,通过句柄变量调用该匿名函数。

定义匿名函数的基本格式
函数句柄变量=@(匿名函数输入参数)匿名函数表达式

%示例:
>> func = @(x)8*x+8;
>> num = 88;
>> number = func(num)

number =

   712

经典案例——猴子吃桃子

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个 。以后每天早上都吃前一天剩下的一半且多一个 。到第 10天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少个桃子?请用循环编程解决该问题。文章来源地址https://www.toymoban.com/news/detail-441352.html

%解答:
>> %普通循环算法:
>> x(1)=1;
>> for i=1:9
x(i+1)=2*x(i)+2;
end
>> x(10)

ans =

        1534

>> %递归循环算法:
>> edit MonkeyEatSpeech

function [S] = MonkeyEatSpeech(x)
if x == 10
    S = 1;
else
    S = 2+2*MonkeyEatSpeech(x+1);
end

>> S = MonkeyEatSpeech(1)

S =

        1534

到了这里,关于Matlab:程序设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 5、MATLAB程序设计与应用刘卫国(第三版)课后实验五:循环结构程序设计

    目录 一、  二、  三、  四、  五、 已知 求 y的近似值。当n分别取100、1 000、10 000时,结果是多少? 要求 :分别用循环结构和向量运算(使用sum 函数)来实现。 --------------------------------------- 示例代码 --------------------------------------------- --------------------------------------- 运行结果

    2023年04月26日
    浏览(49)
  • 基于Python 课程设计-学生管理系统(附源码+可执行程序)

    基于Python 课程设计-学生管理系统(附源码+可执行程序) 非常完整的一个项目,可以作为课程设计去学习。 本系统的完整源码在文章结尾处,大家自行获取即可。 本系统的软件开发及运行环境具体如下。 操作系统:Windows 7、Windows 10。 Python版本:Python 3.7.0。 开发工具

    2024年02月06日
    浏览(53)
  • 基于微信小程序校内论坛系统设计与实现(毕业设计论文+数据库脚本+源码+答辩ppt)

    摘要: 论坛作为一种新的生活上方式,工作方式和学习方式已经被大众所接受。并且在改变着人们的网络社交方式。随着越来越多的人在写论坛,论坛也正在影响着我们的生活。因此,开发一款简洁而功能强大的论坛系统,将来的发展前景也是很不错的。 而我设计的这个 论

    2024年02月10日
    浏览(48)
  • 基于c&c++课程设计-个人收支管理系统(附源码+可执行程序)

    基于cc++课程设计-个人收支管理系统(附源码+可执行程序) 非常完整的一个项目,可以作为课程设计去学习。 本系统的完整源码在文章结尾处,大家自行获取即可。 个人收支管理系统有13个子菜单。 个人信息输入 添加新的收支信息 按月份排序打印出收支清单 删除已有信息

    2024年02月09日
    浏览(61)
  • 2、MATLAB程序设计与应用刘卫国(第三版)课后实验二:MATLAB矩阵处理

    目录 一、  二、  三、  四、  五、 设有分块矩阵 ,其中E、R、O、S分别为单位矩阵、随机矩阵、零矩 阵和对角阵 ,试通过数值计算验证 。   ------------- -------- ------------ ------------ 示例代码 --------------------------- ---------------------------------- --------------------------------------------- 运

    2024年02月06日
    浏览(42)
  • Java:Java程序通过执行系统命令调用Python脚本

    本文实现功能:Java程序调用Python脚本 直接执行 参考视频 JAVA开发必会小技巧8——用代码调用系统指令

    2024年02月14日
    浏览(62)
  • 1、MATLAB程序设计与应用刘卫国(第三版)课后实验一:MATLAB系统环境与运算基础

    目录 一、 二、 三、 四、 五、 六、 启动MATLAB系统环境,完成下列操作。 (1)在 MATLAB命令行窗口输入以下命令后,观察工作区窗口的内容。 x=0:pi/10:2*pi; y=sin(x); (2)在工作区窗口右击变量x、y,再在快捷菜单中选择“删除”命令将它们删除。 ---------------------------------------------

    2024年02月02日
    浏览(44)
  • 7、MATLAB程序设计与应用刘卫国(第三版)课后实验七:绘图操作

    目录 一、 二、  三、  四、  五、 如对你有帮助记得点赞哦 绘制函数曲线。设 ,把x=0~2 π 区间分为101点,绘制函数的曲线。  --------------------------------------- 示例代码 --------------------------------------------- --------------------------------------- 运行结果 ----------------------------------------

    2024年02月04日
    浏览(39)
  • 6、MATLAB程序设计与应用刘卫国(第三版)课后实验六:函数文件

    定义一个函数文件,求给定复数的指数、对数、正弦和余弦,并在脚本文件中调用该函数文件。 --------------------------------------- 示例代码 --------------------------------------------- -------------------------------------- - 运行结果 - -------------------------------------------- 某物理系统可用下列方程组

    2024年02月05日
    浏览(49)
  • 实验一8086计CPU系统寻址方式和汇编语言程序设计

    实验一8086计CPU系统寻址方式和汇编语言程序设 一、实验目的 (1)掌握8086CPU系统的逻辑地址和寻址方式。 (2)掌握8086CPU系统中机器数的表示方式。 (3)掌握指令的机器码表示方法。 (4)掌握堆栈的概念和操作过程。 (5)掌握集成开发环境下的程序设计和调试方法。 (6)掌握汇编语言实

    2023年04月22日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包