matlab学习002-函数及流程控制语句

目录

一,matlab编程基础

1)matlab脚本和函数文件

①脚本文件

②函数文件 

2)函数的定义和调用

①定义 

②调用

3)程序流程控制

①使用for求  1+2+2^2+……+2^62+2^63之和

 ②使用while语句求1+2+2^2+……+2^62+2^63之和

③使用matlab的内置函数sum求1+2^1+2^2+……+2^62+2^63之和


一,matlab编程基础

 matlab有两种使用方式:一种是直接交互式的命令行操作方式;另外一种是使用M文件的编程工作方式。matlab语言语法简练,功能强大,同时支持结构化程序设计和面型对象程序设计。接下来我将开始学习matllab编程相关的知识点。

1)matlab脚本和函数文件

matlab程序文件为文本格式的M文件,其扩展名为“.m”,M文件有脚本文件和函数文件两种。

①脚本文件

脚本文件相当于命令行操作的批处理。当需要在命令行输入较多语句时,可以把这些相关的语句编辑在一起形成脚本文件,以方便重复使用。运行脚本文件时,只需要输入文件名,matlab就会自动按顺序执行文件中的命令。

脚本文件没有输入输出变量,也没有独立工作空间,而是使用matlab的主工作空间。即脚本文件产生的数据会一直保存在matlab的工作空间,除非用户运行clear命令将它们清除。

 因此,脚本文件与函数文件最根本的区别就是有无function语句。

例如,下面👇这个M文件就是脚本文件:

 

②函数文件 

若M文件的第一个程序行包含关键字function,则该M文件就是函数文件。如果在脚本文件开头第一行写上function xxx语句,那么该脚本文件就会变为一个没有输入与输出参数的函数文件。

需要注意的是,一个函数文件可以有多个函数。与脚本文件不同,函数文件通常有输入输出参量(也可以选择没有)。函数文件运行时,有独立的工作空间,称为函数工作空间。函数文件内部使用的变量仅在该工作空间中起作用。当函数执行完成时,这些内部变量将随着函数工作空间一起被清除。

2)函数的定义和调用

①定义 

函数的组成:function[输出参数1,输出参数2,......]=函数名[输入参数1,输入参数2,......]

 function [y1,y2]=函数名(x1,x2)

 虽然函数名也可以不和文件名相同,但是为了方便识别知道对应的函数在哪个文件中,最好函数名和M文件名一致。如下,我定义了一个functiona函数用来返回两个值的相加和相减👇

function [y1,y2]=functiona(x1,x2)
y1=x1+x2;  % 输出参数y1
y2=x1-x2;  % 输出参数y2

②调用

[输出参数1,输出参数2,....]=函数名(输入参数1,输入参数2,....) 

在调用函数的时候需要在函数前面加上需要返回的参数有哪些,如上👆我想要同时返回y1和y2的值,因此我就用一个数组将这两个变量放在一起。

在调用函数的时候我没有使用分号结尾,如果使用分号结尾就不会显示相应的输出参数。 

3)程序流程控制

matlab程序的流程控制和众多编程语言一样,也有if判断语句,for和while循环语句,switch匹配语句。还有对应的关键字break跳出循环,continue跳到下一个循环及return强制返回值。

唯一不同的就是:

  1. matlab中的控制语句的条件(表达式)不需要用空格包裹
  2. 不使用花括号来区分每块代码
  3. 不用分号在每句语句后面结尾
  4. 每个控制语句的最后都会有end结尾

在使用for语句时,指定循环次数可以使用:变量名=表达式(一般为区间  a:b)

①使用for求  1+2+2^2+……+2^62+2^63之和

function sum=functiona(x1,x2)
sum=0;  % 用于存储每一次相加的结果
for i=0:x2  %x从0取到输入参数x2的值sum=sum+x1^i;  % i=0,sum=0+2^0=0+1=1
end   % end用与结束语句的关键字

因为计算出来的数据太大,程序就用科学计数法来表示输出的结果:1.8447e+19-=1.8847×10^19

当我让计算的范围缩小到只需要计算到2的3次方,结果就会是:2^0+2^1+2^2+2^3=15。如下图👇

 ②使用while语句求1+2+2^2+……+2^62+2^63之和

function sum=functiona(x1,x2)
sum=0;  % 用于存储每一次相加的结果
i=0;    % 循环次数初始值
while i<=x2sum=sum+x1^i;  % i=0,sum=0+2^0=0+1=1i=i+1;
end   % end关键字用于语句的结束

③使用matlab的内置函数sum求1+2^1+2^2+……+2^62+2^63之和

 如果我不想用for循环或者是while循环,就可以使用sum函数,关于sum函数的官方解释如下:

了解具体的参数之后开始编写代码: 

function sum1=functiona(x1,x2)
i=0:x2;
sum1=sum(x1.^i);  % 用于存储每一次相加的结果

实现效果: 

有问题请在评论区留言或者是私信我,一天8h在线。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/812773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python学习(三)

函数扩展 多返回值 参数扩展 位置参数 注意:传递的参数和定义的参数的顺序及个数必须一致 关键字参数 关键字名称必须和形参名称相同&#xff0c;形参叫name&#xff0c;那么关键字也要写name 不定长参数 缺省参数

C语言奇技淫巧之--“函数指针数组”的类型定义与结构化初始化某一个函数

精力有限&#xff0c;就不写前言后序了&#xff0c;懂的都懂&#xff0c;直接上代码。 快速回忆点&#xff1a; # 类型定义 typedef int (*my_func_t)(int a, void *b)# 函数指针数组结构体定义 struct my_ops {int (*func[FUNC_TYPE_MAX])(int a, void *b); };# 函数指针数组…

Java8 Stream流的sorted()的排序【正序、倒序、多字段排序】

针对集合排序&#xff0c;java8可以用Stream流的sorted()进行排序。 示例Bean 以下我们会使用这个Bean来做示例。 public class Order {private String weight;private Double price;private String dateStr;//忽略getter、setter、构造方法、toString }字段排序 首先是比较器…

职场新员工倒挂老员工工资

职场的工资倒挂和工资构成 一个公司招新员工要开多少工资 主要取决于其他大厂出多少钱以及当年就业市场的行情。职场中常出现工资倒挂现象&#xff0c;即新员工的工资高于老员工。公司宁愿高薪招新员工而不给老员工加工资&#xff0c;主要是因为新员工的工资由市场决定&#…

【优选算法专栏】专题十:哈希表(一)

本专栏内容为&#xff1a;算法学习专栏&#xff0c;分为优选算法专栏&#xff0c;贪心算法专栏&#xff0c;动态规划专栏以及递归&#xff0c;搜索与回溯算法专栏四部分。 通过本专栏的深入学习&#xff0c;你可以了解并掌握算法。 &#x1f493;博主csdn个人主页&#xff1a;小…

[yotroy.cool]Haskell笔记一 —— 入门 算数 运算符 未定义变量 列表 字符串 类型

个人博客https://www.yotroy.cool/&#xff0c;欢迎关注我哦&#xff5e; 添加模块 ghci> :module Data.Ratio算数 - * / ** ^ % 基本的 ghci> 7.0 / 2.0 3.5 ghci> 7 / 2 3.5ghci> 2 2 4 ghci> () 2 2 4** 和 ^ - ** 可用于浮点数幂 ghci> 2.2**3.3 …

分治法python

分治法(Divide and Conquer)是一种重要的算法设计技巧,它将一个难以直接解决的问题分解成两个或更多的相同或相似的子问题,递归地解决这些子问题,然后将子问题的解组合起来,从而解决原问题。 以求最大值为例,假设我们有一个整数数组,我们想找到数组中的最大值。使用分…

mutable关键字的作用(c++)

常成员变量、常成员函数与常对象 常成员变量 声明为常成员变量的成员变量&#xff0c;在对象被创建后就不能被修改常成员变量必须在对象的构造函数初始化列表中赋值&#xff0c;不能在构造函数体中赋值初始化列表的执行是在函数体执行之前就执行了的。上面这种写法和下面的写…

卫星遥感影像在农业方面的应用及评价

一、引言 随着科技的进步&#xff0c;卫星遥感技术在农业领域的应用越来越广泛。卫星遥感技术以其宏观、快速、准确的特点&#xff0c;为农业生产和管理提供了有力的技术支撑。本文将对卫星遥感在农业方面的应用进行详细介绍&#xff0c;并通过具体案例进行说明。 二、…

(二)ffmpeg 下载安装以及拉流推流示例

一、ffmpeg下载安装 官网&#xff1a;https://www.ffmpeg.org/ 源码下载地址&#xff1a;https://www.ffmpeg.org/download.html#releases 下载源码压缩包 下载完成之后解压并在该目录下打开命令窗口 安装依赖环境&#xff1a; sudo apt-get install build-essential nasm …

【CAD建模号】学习笔记(二)——工作区

工作区介绍 工作区由[工具提示]&#xff0c;[自适应网格]&#xff0c;[自适应坐标轴]&#xff0c;[参考坐标轴]&#xff0c;[绘制的图形]组成。 一、工具提示 工具提示是提示当前工具的操作步骤&#xff0c;同时也提供了更加精确的参数输入方式建模、绘图时直接生成面&#x…

规则系统架构

规则系统架构 目录概述需求&#xff1a; 设计思路实现思路分析1.规则系统架构2. 规则系统架构优势 性能参数测试&#xff1a; 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,mak…

计算机常识

常见屏幕比例&#xff1a;16&#xff1a;9和16&#xff1a;10 分辨率&#xff1a;屏幕上水平和垂直方向的像素数量&#xff0c;决定了屏幕显示图像的细致程度和清晰度 简称 HD(High Definition)&#xff1a;高清 FHD(Full High Definition)&#xff1a;全高清 QHD (Quarter H…

Linux防止暴力破解密码脚本

1.认识记录linux记录安全的日志 [roottestpm ~]# cd /var/log/ [roottestpm log]# ls | grep secure secure 2.该日志的内容查看 [roottestpm log]# tail -f secure #表示ssh身份验证失败 Aug 29 23:35:03 testpm sshd[111245]: pam_unix(sshd:auth): authentication fa…

Java内存泄漏内存溢出

1.定义 OOM内存溢出是指应用程序尝试使用更多内存资源&#xff0c;而系统无足够的内存&#xff0c;导致程序崩溃。 内存泄漏是指应用程序中分配的内存未能被正确释放&#xff0c;导致系统中的可用内存逐渐减少。 2.内存泄漏的原因 可能包括对象引用未被释放、缓存未被清理等。 …

【MYSQL】其他索引的创建使用方式

MySQL其他索引的创建使用方式 前面的案例中&#xff0c;聊到了咱们有三种方式创建索引&#xff0c;在创建时可通过INDEX、KEY两个关键字创建&#xff0c;但这种方式建立的索引仅是普通索引&#xff0c;接着再来聊一聊MySQL数据库其他类型的索引该如何创建以及使用。 但不管是何…

3D应用模型信创系统实时渲染有什么要求?

实时云渲染技术是数字孪生领域&#xff0c;比较常用的轻量化软件交付方式&#xff0c;该技术是将3D应用等大模型的算力执行放在了服务器端&#xff0c;而服务器目前比较常用的还是Windows系统。但随着国产信创在数字孪生领域应用越来越多&#xff0c;实时云渲染平台的国产信创化…

学习基于pytorch的VGG图像分类 day4

注&#xff1a;本系列博客在于汇总CSDN的精华帖&#xff0c;类似自用笔记&#xff0c;不做学习交流&#xff0c;方便以后的复习回顾&#xff0c;博文中的引用都注明出处&#xff0c;并点赞收藏原博主. 目录 VGG模型检测 一&#xff1a;导入必要的库和模块 二&#xff1a;主函数…

Games101Homework【6】Acceleration structure(Including framework analysis)

Code Analysis&#xff1a; friend&#xff1a; C中友元&#xff08;友元函数和友元类&#xff09;的用法和功能_friend class a<b>-CSDN博客 [C&#xff1a;不如Coding]&#xff08;11&#xff09;&#xff1a;友元函数与友元类_哔哩哔哩_bilibili Here is a simple…

Rust开发笔记 | 系统编程的守护神

在如今这个信息技术不断发展的时代&#xff0c;系统编程语言演进的步伐从未停歇。Rust&#xff0c;作为现代化的系统编程语言&#xff0c;正凭借其出色的性能、安全性和并发处理能力赢得编程界的广泛赞誉。有别于传统的系统编程语言&#xff0c;Rust在保证高性能的同时&#xf…