热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

变量matlababc2,Matlab高级教程_第一篇:Matlab基础知识提炼_03

第七节:函数编程的过程很像是画图纸,编程语言在平时使用的时候不会像是单个的命令去执行,大多数情况下我们把许多重复要执行或者一些常用的编辑好

第七节:函数

编程的过程很像是画图纸,编程语言在平时使用的时候不会像是单个的命令去执行,大多数情况下我们把许多重复要执行或者一些常用的编辑好的功能“封装”到一起,方便来使用。函数-----就是这种过程。函数也就是最基本的“画图纸”的方式。

7.1  函数的关键字

关键字就好像是这些筋骨的节点,起到起承转合的作用。共20个左右(可能后续会有增加),这些关键字在变量声明等地方不能重名使用,他们是唯一的。

在命令窗口输入iskeyword命令就会显示出这些关键字。关于并行技巧后面会说到。

4c29f191f64110f768b3dd2c504d493e.png

7.2 MATLAB的控制流

像if,for,while等这类语句叫做控制流。MATALAB包括6中算法,其中switch-case这种类型比较特殊点儿,跟if非常类似。

六种:顺序结构、if-else-end分支结构、switch-case结构、try-catch结构、for循环结构和while循环结构。跟其他语言一样来这里列出只不过稍微比较一下和其他语言的书写结构哪里有些不同。

7.2.1 顺序结构

这部分略,就是语句时按照从上而下、从左至右的运行方式。

7.2.2 if-else-end分支结构

if后面打不打括号一样。写一个完整版本的例子

x = input('enter''x'':');

if(x>0)

y = 1;

elseif (x ==0)

y = 0;

else

y = -1;

end

disp(y)

注意每一个语句结束要用分号,这是MATALB的规定。

7.2.3 switch-case 语句

switch后面跟要进行判断的标量或者字符串,举一个完整例子如下。

num = 8;

switch num

case 1

data = 'Monday';

case 2

data = 'Tuesday';

case 3

data = 'Wednesday';

case 4

data = 'Thursday';

case 5

data = 'Friday';

case 6

data = 'Saturday';

case 7

data = 'Sunday';

otherwise

data = 'Please input right num!';

end

disp(data)

注意: 这里的switch语句后面要加上 otherwise这一条,如果不加判断体内判断都为0,会返回一个报错。

7.2.4 try-catch语句

try-catch语句属于找错语句,如果命令在try内错误,会执行catch内的语句。一个简单的例子:

clear;

num = 100;

try

if ischar(num)

disp('num is a string');

end

catch

disp('num is num');

end

lasterror;

% lasterr;

注意:后面一般跟一个错误提示信息

7.2.5 for循环结构

简单的例子:

for i = 1:4

for j = 1:4

if i > (5-j)

else

Mat(i,j) = i + j -1;

end

end

end

7.2.6 while 循环

简单的例子:

a(1) = 1;

a(2) = 1;

i = 2;

while a(i) <10000

a(i&#43;1) &#61; a(i) &#43; a(i-1);

i &#61; i &#43;1;

end

注意&#xff1a;while循环别忘了计数器。避免造成死循环。

7.3 控制程序流的其他常用命令和语句的嵌套。

嵌套就不用说了。

7.3.1 input和keyboard指令

输入指令&#xff0c;不多说了。

keyboard与input不同之处在于&#xff1a;keyboard指令运行输入多个MATLAB指令&#xff0c;而input指令只允许用户输入赋值给变量的“值”&#xff0c;即数组、字符串或者元胞、数组等。

yesinput指令。只能输入的指令它提供的输入值是一个默认量&#xff0c;并可以对输入范围进场检测&#xff0c;具体语法格式如下&#xff1a;

Value &#61; yesinput(&#39;Prompt&#39;, Default, Possib);

(1) 这个指令设计用户和MATLAB之间的交互&#xff0c;因此无法再notebook程序中执行。

(2) Prompt为文字提示&#xff0c;Default为默认的设置值&#xff0c;Possib为可选值。

(3) 当yesinput指令运行后&#xff0c;如果用户不输入任何值&#xff0c;则变量Value将接受默认值。

备注&#xff1a;用的最多的就是input

7.3.2 pause 指令

暂停指令&#xff0c;注意括号内的是秒

7.3.3 continue &#xff0c;break不说了

7.3.4 error和warning指令

总结如下&#xff1a;

da40cffd4447a13f1ab68966521dc0fa.png

7.4  脚本和函数的区分

与脚步文件不同的是&#xff0c;MATLAB中&#xff0c;函数文件Function文件类似于一个黑匣子&#xff0c;从外部无法看清其内部运算流程。其实我们每天写的叫脚本&#xff0c;而函数只不过是一种封装好的脚步运行过程看不见。

7.5 一般函数的结构

7.5.1 写完的函数要保存&#xff0c;这是句废话。另外&#xff0c;你保存的是函数的话会有一个fx的图表&#xff0c;如果保存的是脚本的话&#xff0c;有个MATALB的图像标志&#xff0c;文件名都.m文件&#xff0c;所以在很多教材中这部分叫M文件的编写

7.5.2 函数参数的指令集

在很多语言中&#xff0c;比如python分为5类&#xff0c;注入可变长度参数&#xff0c;表达式参数&#xff0c;默认参数等等。

这里有5类

分别为&#xff1a;

28d4d85e1925be82fe0400dcb0340c9e.png

一般在函数体内

varargin{1} 表示输入的第二个参数是

如果function a &#61; abc (varargin)

if nargin  &#61;&#61; 1 表示输入的参数为一个的话&#xff0c;等等一次类推

7.5.3 匿名函数、子函数、私有函数和私有目录

所谓匿名函数就是不用写函数又function有啥的&#xff0c;直接比较简单的函数实现。

子函数、私有这个不讲了

7.5.4 eval feval 和inline(内联函数)

7.6 跨空间变量传递和赋值

evalin(&#39;工作区&#39;, &#39;expression&#39;)&#xff1b;该指令的工能为跨空间计算字符串表达式的值

assignin跨空间函数的调用

c554cf5fd62bc62ea9e75a5ed315e65a.png



推荐阅读
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
author-avatar
难耐五更寒
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有