MATLAB之编程基础

目录

1、变量

1.1命名规则

1.2变量类型

 1.3特殊变量

1.4关键字

2、M文件的控制结构

2.1顺序结构

2.2 if-else-end分支结构

 2.3switch-case结构

 2.4try-catch结构

2.5循环结构

  2.5.1  for循环

 2.5.3 while循环

3.其他指令

3.1 return指令

3.2输入函数

3.2.1 input

 3.2.2keyboard

3.2.3yesinput指令

3.3pause指令

3.4continue与break指令

3.4.1continue指令

3.4.2break指令

3.5error和warning指令


1、变量

1.1命名规则

MATLAB 中,变量不需要预先声明就可以进行赋值。变量的命名遵循以下规则:
(1)变量名和函数名对字母的大小写敏感,因此 x X 是两个不同的变量;
(2)变量名必须以字母开头,其后可以是任意字母或下画线,但是不能有空格、中文或标点。
(3)不能使用MATLAB 的关键字作为变量名。避免使用函数名作为变量名。如果变量采用函数               名,则该函数失效,如设置变量名为“if”“end” 等。
(4)变量名最多可包含63 个字符,从第 64个字符开始之后的字符将被忽略。为了程序可读及维护           方便,变量名一般代表一定的含义。

1.2变量类型

1 局部变量 MATLAB 中的每一个函数都有自己的局部变量,这些变量存储在该函数独立的工作区中,与其他函数的变量及主工作区中的变量分开存储。当该函数调用结束后,这些变量随之被删除,不会保存在内存中。
(2)全局变量。全局变量在定义该变量的全部工作区中有效。当在一个工作区内改变该变量的值时, 该变量在其余工作区内的值也将改变。 通常全局变量的变量名用大写字母来表示,并在函数体的开头位置进行定义,其格式如下:
        使用全局变量的目的是减少数据传递的次数。然而,使用全局变量有一定的风险,容易造成错误,这种错误源自全局变量的工作原理。
(3)永久变量。永久变量用 persistent 声明,只能在 M 文件函数中定义和使用,只允许声明它的函数存取。当声明它的函数退出时,MATLAB 不会从内存中清除它。例如,声明 a 为永久变量

 1.3特殊变量

MATLAB的特殊变量
变量名表示含义
ans系统默认的用作保存运算结果的变量名
pi圆周率
eps机器零阀值,MATLAB中的最小值
inf表示无穷大
NaN或nan表示不定数
i或j虚数
nargin函数的输入参数个数
nargout函数的输出参数个数
realmin可用的最小正实数
realmax可用的最大正实数
bitmax可用的最大正整数(以双精度格式存储)
varargin可变的函数输入参数个数
varargout可变的函数输出参数个数
beep使计算机发出“嘟嘟”声音

1.4关键字

     和其他编程语言类,关键字是 MATLAB 程序设计中常用到的流程控制变量,共有 20 个,如果用户将这些关键字作为变量 名,则MATLAB 会出现错误提示。在命令行窗口中输入命令 iskeyword ,即可查询这 20 个关键字:

2、M文件的控制结构

MATLAB 平台上的控制结构包括顺序结构、 if-else-end 分支结构、 switch-case 结构、 try-catch 结构、 for循环结构和 while 循环结构,这6种结构的算法及使用与其他计算机编程语言十分类似,有编程基础的朋友可以很快掌握。

2.1顺序结构

     顺序结构是 MATLAB 程序中最基本的结构,表示程序中的各操作是按照它们出现的先后顺序执行的。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三部曲的程序就是顺序结构。 在大多数情况下,顺序结构作为程序的一部分,与其他结构一起构成一个复杂的程序,如分支结构中的复合语句、循环结构中的循环体等。

2.2 if-else-end分支结构

if语句若判决条件 为真,则执行命令组,否则跳过该命令组如下例:
情形1:

 

 情形2:

 2.3switch-case结构

       switch 语句执行基于变量或表达式值的语句组,关键字 case otherwise 用于描述语句组。只执行第一个 匹配的情形。用到switch 则必须用 end 与之搭配。 switch-case 的具体语法结构如下:

 

 

说明:
1 switch-case 结构的调用格式保证了至少有一组指令组将会被执行。
(2) switch 指令之后的表达式 value 应为一个标量或一个字符串。当表达式为标量时,比较命令为表达 式== 检测值 ;而当表达式为字符串时, MATLAB 将会调用字符串函数 strcmp 来进行比较,即 strcmp( 表达式 , 检测值)
(3) case 指令之后的检测值不仅可以是一个标量或一个字符串,还可以是一个元胞数组。如果检测时是一个元胞数组,则MATLAB 将会把表达式的值与元胞数组中的所有元素进行比较。如果元胞数组中有某个元素与表达式的值相等,MATLAB 则认为此次比较的结果为真,从而执行与该次检测相对应的命令组。

 2.4try-catch结构

try
 command1  %命令组1先被执行,若正确,则执行完后结束此结构
catch
 command2  %命令组1错误时,执行命令组2
end

说明:
1 )只有当 MATLAB 执行命令组 1 发生错误时,才执行命令组 2 try-catch 结构只提供两个可供选择的命令组。
(2)当执行 command1 发生错误时,可调用 lasterr 函数查询出错的原因。如果函数 lasterr 的运行结果为 空字符串,则表示命令组1 被成功执行了。
(3)如果执行命令组 2 时又发生错误,则 MATLAB 将会终止该结构。

2.5循环结构

  2.5.1  for循环

首先看一个例子:

for i = 1:4
  for j = 1:4
   if i>(5-j)
        A(i,j)=0;
   else   
     A(i,j)=i+j- 1;
   end
  end
end
A

      

1 for 指令后面的变量i 称为循环变量,而 for end 之间的命令 commands 被称为循环体。循环体被重复执行的次数是确定的,该次数由array 数组的列数来确定。因此,在 for 循环过程中,循环变量 i 被依次赋值为数组array 的各列,每次赋值,循环体都被执行一次(上述例子为一个循环嵌套)。
(2) for 循环内部语句末尾的分号隐藏重复的打印,若 commands 指令中包含变量,则循环后在命令行窗口中直接输入变量A 来显示变量 A 经过循环后的最终结果。

 2.5.2 while循环

while 循环 结构的具体句法形式如下:
while expression
   commands
end
说明:
1 )在 while end 之间的命令组被称为循环体。 MATLAB 在运行 while 循环之前,首先检测 expression 的值,若其逻辑值为真,则执行命令组;命令组第一次执行完毕后,继续检测expression 的逻辑值,若其逻 辑值仍为真,则循环执行命令组,直到表达式expression 的逻辑值为假时,结束 while 循环。
(2) while 循环和 for 循环的区别在于, while 循环结构的循环体被执行的次数是不确定的,而 for 循环中 循环体被执行的次数是确定的。
(3)一般情况下,表达式的值都是标量值,但是在 MATLAB 中也同样运行表达式为数组的情况。当表达式为数组且数组所有元素的逻辑值均为真时,while 循环才继续执行命令组。
(4)如果 while 指令后的表达式为空数组,那么 MATLAB 默认表达式的值为假,直接结束循环。
(5)在 if-else-end 分支结构中提到的有关变量比较的注意事项,对 while 循环也同样适用。

3.其他指令

3.1 return指令

     通常,当被调用函数执行完成后, MATLAB 会自动将控制权转回主函数或 Commands 窗口。但是如果在被调用函数中插入return 指令,则可以强制 MATLAB 结束执行该函数并把控制权转出。

3.2输入函数

3.2.1 input

input 指令将 MATLAB 的控制权暂时交给用户,用户通过键盘输入数值、字符串或表达式等,并按
Enter 键将输入内容传递到工作区,同时把控制权交还给 MATLAB 。其常用的调用格式如下。
● Value=input('message') :将用户输入的内容赋值给变量Value(输入数值、字符串等各种形式的数据)。
● Value=input('message','s') :将用户输入的内容以字符串的形式赋值给变量 Value

 3.2.2keyboard

    当执行遇到 keyboard 指令时, MATLAB 将控制权暂时交给键盘,用户可以由键盘输入各种合法的 MATLAB指令。只有当用户输入完成,并输入 return 指令后,控制权才交还给 MATLAB
     input keyboard 指令的不同之处在于: keyboard 指令允许输入任意多个 MATLAB 指令,而 input 指令只允 许用户输入赋值给变量的“ ,即数组、字符串或元胞数组等。

3.2.3yesinput指令

yesinput指令是一个只能输入的指令,它提供的输入值是一个默认量,并可以对输入范围进行检查,其调用格式如下。

Value=yesinput('Prompt',Default,Possib)
说明:
1 yesinput 指令涉及用户和 MATLAB 之间的交互,因此无法在 notebook 程序中运行。
(2) Prompt 为文字提示, Default 为默认的设置值, Possib 为可选值。
(3)当 yesinput 指令运行后,如果用户不输入任何值,则变量 Value 将接收默认值。

3.3pause指令

pause 指令的功能为控制执行文件的暂停与恢复,其调用格式如下。
● pause :暂停执行文件,等待用户按任意键继续
● pause(n) :在继续执行文件之前,暂停 n 秒。

3.4continue与break指令

3.4.1continue指令

continue 语句把控制权传给下一个在其中出现的 for while 循环的迭代,忽略任何循环体中保留的语句。 在嵌套循环中,continue 语句把控制权传给下一个 for while 循环所嵌套的迭代。
%如果i大于2把控制权传给下一个在其中出现的for
count = 0;
for i = 1:4
 
   if (i>2)
     continue; 
   end  
   
     count = count+1;
end
count

最后count的值为2;

3.4.2break指令

    在 for 循环或 while 循环结构中,有时并不需要运行到最后一次循环用户就已经得到了所需要的结果,那 么后面的循环就变成冗余的了,消耗了运算时间并占用了内存。
break 指令可进行对 for 循环或 while 循环结构的终止,通过使用 break 指令,可以不必等待循环的预定结束时刻,而是根据循环内部设置的终止项来判断。
若终止项满足,则可以使用 break 指令退出循环;若终止项始终未满足,则照常运行至循环的预定结束时刻。
%如果数组a的0元素个数大于等于3则退出循环
a=[0 1 0 2 0 0 2 6 0 4 0 0 0 0 0 3];
l=length(a);
count = 0;
for i = 1:l
   if (a(i) == 0)
     count = count+1; 
   end  
     if(count >= 3)
         break;
     end
end
count

3.5error和warning指令

在编写 M 文件时,常用的错误或警告指令的调用格式有以下几种。
error('message') :显示出错信息 message ,终止程序。
errortrap :错误发生后,控制程序继续执行与否的开关。
lasterr :显示 MATLAB 系统判断的最新出错原因,并终止程序。
warning('message') :显示警告信息 message ,继续运行程序。
lastwarn :显示 MATLAB 系统给出的最新警告程序,并继续运行。
微分如她
关注 关注
  • 3
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
matlab基础编程,Matlab 编程入门(一):编程基础
weixin_30822467的博客
03-18 5290
上学期学了一些matlab的知识,这学期再用时竟然发现已经忘得差不多了(┬_┬)于是决定重新开始并将它们记录下来,也方便自己以后查漏补缺!M文件编程脚本文件matlab有自己的命令行窗口,对于简单的命令,可以直接在命令行窗口输入,但随着命令行的增加或者命令本身复杂度的增加,再使用命令行就显得有些不便了,这时就需要脚本文件了。可以说,脚本文件是matlab指令集合的封装。函数文件函数文件以funct...
Matlab编程基础
weixin_30781631的博客
05-20 1866
Matlab编程基础 原文:Matlab编程基础 平台:Win7 64 bit,Matlab R2014a(8.3)   “Matlab”是“Matrix Laboratory” 的缩写,中文“矩阵实验室”,是强大的数学工具。本文侧重于Matlab编程语言侧面,讲述Matlab的基本语法,以及用Matlab语言进行程序设计。值得一...
【数学建模】matlab的基本用法讲解
最新发布
2303_79015671的博客
08-20 1898
讲解MATLAB的基本用法,利用matlab制作二维图和三维图已经找异常值
Matlab程序设计语言基础
cx550378562的博客
10-23 1936
2.1Matlab程序设计语言基础 1.若i和j不改写,它们将表示虚数的。但是在Matlab程序的设计过程中,经常使用i或者j作为循环的变量。如果涉及到虚数运算,应当先确认这两个量有没有被改写,如果被改写了,用i=sqrt(-1)来重置。 2.无穷大,在Matlab中用inf表示,负无穷大相应地用-inf表示。 ...
MATLAB初学者教程 MATLAB编程-菜鸟入门(清晰版)
08-21
MATLAB初学者教程 MATLAB编程-菜鸟入门
matlab基础编程学习
weixin_51803110的博客
10-24 5119
matlab基础知识
MATLAB向量化编程基础精讲 配套源程序
07-24
在"MATLAB向量化编程基础精讲 配套源程序"这本书中,读者可以深入理解这些概念,并通过配套的源程序实践,提升自己的MATLAB编程水平。书中可能涵盖了如何构造和操作数组、矩阵,如何使用向量化的数学函数,以及如何...
matlab基础编程:14 进阶MATLAB高级编程技巧.zip
08-17
本资料包“matlab基础编程:14 进阶MATLAB高级编程技巧”旨在深入探讨MATLAB编程中的高级技术,帮助用户提升编程效率和代码质量。 在MATLAB中,高级编程技巧涵盖了多个方面,包括: 1. **函数设计**:MATLAB支持...
Matlab基础——程序设计
xushunag的博客
08-21 2469
脚本 程序控制结构 顺序结构 >> a=input('a=?'); b=input('b=?'); c=input('c=?'); d=b*b-4*a*c; x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]; disp(['x1=',num2str(x(1)),'x2=',num2str(x(2))]); a=?12 b=?15 c=?1...
matlab基础编程练习
08-18
基础MATLAB编程教材,适用于初学者!
MATLAB编程基础
weixin_41804195的博客
03-17 223
matlab编程基础
qq_43519505的博客
08-26 369
Ch06 编程基础 6.1 M 文件 6.1.1 M 函数 1. 基本语法 function [结果] = 函数名(输入变量) 处理变量 end function [a, c] = ac(r) % 功能: a = pi*r*r; %c = pi*r; % 逻辑错误 ...
MATLAB编程——基本运算
qq_60299751的博客
01-12 3681
MATLAB初学笔记
MATLAB编程基础(一)
theory and practice的博客
03-18 858
一,概述 1,和C语言类似,M语言文件都是标准的纯文本格式的文件,其文件的拓展名为.m。利用任何一种纯文本编译器都可以编写相应的文件。 2,使用M文件最直接的好处就是可以将一组MATLAB命令组合起来,通过一个简单的指令就可以执行这些命令。 3,MATLAB的函数主要有两类: (1)内建函数 这类函数是由MATLAB的内核提供的,能够完成基本的运算,例如三角函数,矩阵运算的函数。 (2)利用高级语...
写文章

热门文章

  • MATLAB之M文件与函数 9523
  • MATLAB之编程基础 3872
  • MATLAB基础知识之数组与矩阵 3637
  • MATLAB之图形绘制 2533
  • 1、MATLAB基础知识之数据类型 1396

最新评论

  • Ns3与Docker之间实现数据通信

    普通网友: 这篇文章真是一篇佳作!作者运用了生动有趣的语言,将枯燥的理论知识娓娓道来,让人如沐春风。【我也写了一些相关领域的文章,希望能够得到博主的指导,共同进步!】

  • MATLAB之图形绘制

    CSDN-Ada助手: 恭喜您写了第5篇博客,题目为“MATLAB之图形绘制”!看到您持续创作,我感到十分高兴。您的博客内容非常有趣,对图形绘制这一主题进行了深入的探讨。不过,我想提供一个谦虚的建议给您,下一步可以考虑加入更多实际案例,以及结合实际应用场景,这样读者能够更好地理解和应用您所介绍的技巧。期待您的下一篇博客!加油!

  • 1、MATLAB基础知识之数据类型

    CSDN-Ada助手: 恭喜您开始博客创作!标题“1、MATLAB基础知识”很吸引人,尤其对于想要学习MATLAB的初学者来说,这篇博客将会是一个很好的起点。在接下来的创作中,我建议您可以进一步扩展MATLAB基础知识的内容,例如介绍一些常用的函数和工具,或者分享一些实际应用案例,这样读者能够更全面地了解和应用MATLAB。期待您的下一篇博客,希望您能继续分享有价值的知识和经验! 推荐【每天值得看】:https://bbs.csdn.net/forums/csdnnews?typeId=21804&utm_source=csdn_ai_ada_blog_reply1

  • MATLAB基础知识之数组与矩阵

    CSDN-Ada助手: 非常棒的博客!你对MATLAB基础知识的解释很清晰,让我对数组和矩阵的操作有了更深入的了解。希望你能继续写下去,分享更多关于MATLAB的知识。 除了数组与矩阵的基础知识,你可以考虑在以后的博文中探讨一些扩展的知识和技能,比如MATLAB中的图像处理、数据可视化、模拟和建模等。这些主题可能会对读者来说是一个很好的补充,也能让他们更好地应用MATLAB进行科学计算和数据分析。 谦虚地说,我相信你有能力继续深入研究和分享更多有关MATLAB的知识。期待看到你未来的作品! 如何写出更高质量的博客,请看该博主的分享:https://blog.csdn.net/lmy_520/article/details/128686434?utm_source=csdn_ai_ada_blog_reply2

  • MATLAB之M文件与函数

    CSDN-Ada助手: 恭喜您写了第四篇博客!标题为“MATLAB之M文件”,非常引人注目。持续创作是非常值得赞赏的,您的努力和才华不可忽视。对于下一步的创作建议,我建议您可以考虑分享一些关于MATLAB中其他类型文件的知识,例如.fig文件或.mat文件的应用。这将为读者提供更全面的了解,并且能够拓宽您的创作领域。期待您未来更多精彩的博客! 如何快速涨粉,请看该博主的分享:https://hope-wisdom.blog.csdn.net/article/details/130544967?utm_source=csdn_ai_ada_blog_reply5

最新文章

  • simulink使用Universal Bridge平均模型的VSC
  • Windows下运行Fast DDS
  • Simulink powergui 模块出现维数错误(Error in port widths or dimensions)
2024年6篇
2023年4篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司外贸仿牌网站优化哪里好网站首页快照优化哪家便宜优化网站整站教程推广大庆市网站seo优化排名网站排名优化联络易点网络优化网站关键词哪家好三门峡网站建设优化哪家专业辽宁专业的网站设计优化福永网站优化计划自贡网站优化软件三角网站优化私营医院网站优化服务商石家庄百度快照网站优化价格网站链接的优化方案优化网站排名注意事项教程泰安徐州网站建站优化肥西网站优化推广关于网站优化推广江苏企业网站优化哪家强佛山网站首页关键词优化技巧优化网站不能做什么江门网站整站优化价格西湖区网站优化推广平台麻城市网站做优化怎么样网站标题和简介怎么优化无锡优化网站方法山东提供网站优化壹起航网站优化好吗夏县网站优化芜湖网站优化标题可以修改吗香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化