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

news2024/11/26 12:02:07

目录

一,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<=x2
    sum=sum+x1^i;  % i=0,sum=0+2^0=0+1=1
    i=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.coloradmin.cn/o/1591006.html

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

相关文章

【御控物联】 Java JSON结构转换(2):对象To对象——属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、案例之《JSON对象 To JSON对象》三、代码实现四、在线转换工具五、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换&#xff0c;生成新的JS…

【Python】实现导入、提交文件并显示其路径的基础GUI界面

The tkinter package (“Tk interface”) 是一个基于Tcl/Tk GUI工具标准的Python接口。集合在大多数操作系统都有Tk和tkinter 库&#xff0c;包括MacOS&#xff0c;Window还有一些Unix类的操作系统 【基础操作】 1 设置窗口 # -*- coding: utf-8 -*- from tkinter import *#创…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现&#xff1a; 2023 年开年&#xff0c;ChatGPT 作为一款聊天型 AI 工具&#xff0c;成为了超越疫情的热门词条&#xff1b;而在 AI 的另一个分支——绘图领域&#xff0c;一款名为 Midjourney&#xff08;MJ&…

Matlab调C/C++简单模板例子

如果你是需要快速搭建一个matlab调c/c环境&#xff0c;这篇文章可以参考 有了c代码&#xff0c;想在matlab里面调用&#xff0c;可以参考我这个模板 matlab调用代码&#xff1a; clear all close all clcinput1 1; input2 2;[output1,output2] mexfunction(input1,input2);…

充电有喜分析

参考相关应用 华为市场 -> 充电有喜2.0.1网络查找 -> 充电有喜1.0.0 http://www.xz7.com/downinfo/609008.html反编译app有个文字漏洞&#xff0c;找到 来福充电宝 https://sj.qq.com/appdetail/com.evenhaexplo.courte 需要解决的问题 电源插拔注册为什么需要悬浮窗权…

Linux C柔性数组(零长数组)

零长数组&#xff0c;大小为0&#xff0c;一般用在结构体中&#xff08;网络通信&#xff0c;省流&#xff09;&#xff0c;节省空间&#xff0c;方便善后&#xff08;相对于指针类型&#xff09;&#xff0c;我们通过具体例子进行理解。 常规定长数组 #include <stdio.h&…

[温故] 红黑树算法

前言 最近在突然想起一些基础的东西, 向着温故知新, 有了些新的感悟和大家分享一下. 排序算法是数据结构的一个重要组成部分, 当时学习的时候没有少折腾, 这里来看看大佬们怎么运用这些数据结构来构建庞大的计算机体系的. 二叉树是排序算法的一个衍生, 基于二叉树的构建不同…

【路径规划】基于六次多项式的多关节机器人避障路径规划

最近迷上了机械臂避障轨迹规划&#xff0c;因为之前一直做的都是无障碍物轨迹规划&#xff0c;所以这次想试一下有障碍物的&#xff0c;把避障算法用在我的SimMechanics机械臂上&#xff0c;看看效果咋样。以下定义不区分路径规划和轨迹规划。   by the way&#xff0c;本文实…

一种跳板机的实现思路

一、 跳板机思路简介 本文所描述的跳板机&#xff08;下文称为“jmp”&#xff09;支持&#xff1a; Linux服务器 Windows服务器 其他终端&#xff08;MySQL终端、Redis终端、网络设备终端 等等&#xff09; 有别于市面上常见的jumpserver方案&#xff0c;使用本文所搭建的跳…

CSS实现卡片在鼠标悬停时突出效果

在CSS中&#xff0c;实现卡片在鼠标悬停时突出&#xff0c;通常使用:hover伪类选择器。 :hover伪类选择器用于指定当鼠标指针悬停在某个元素上时&#xff0c;该元素的状态变化。通过:hover选择器&#xff0c;你可以定义鼠标悬停在元素上时元素的样式&#xff0c;比如改变颜色、…

最新PDD批发Anti-Content参数逆向分析与算法还原

文章目录 1. 写在前面2. 接口分析3. 分析与扣代码 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Py…

Java(今天偷懒一丢丢

今天学了一点点io流 基本概念 输入流&#xff08;InputStream&#xff09;&#xff1a;用于从数据源读取数据。输出流&#xff08;OutputStream&#xff09;&#xff1a;用于向目标写入数据。 分类 按功能分类 字节流&#xff1a;处理字节数据&#xff0c;如 InputStream 和…

CSS aspect-ratio属性设置元素宽高比

aspect-ratio 是CSS的一个属性&#xff0c;用于设置元素的期望宽高比。它设置确保元素保持特定的比例&#xff0c;不受其内容或容器大小的影响。 语法&#xff1a; aspect-ratio: <ratio>;其中 <ratio> 是一个由斜杠&#xff08;/&#xff09;分隔的两个数字&…

韩顺平 | 零基础快速学Python(12) OOP基础

面向对象编程-基础 类与对象 类提供了把数据和功能绑定在一起的方法。创建新类时创建了新的对象类型&#xff0c;从而能够创建该类型的新实例/对象。 类时抽象的概念&#xff0c;作为数据类型代表一类事物&#xff1b;对象时具体实际的&#xff0c;作为实例代表具体事物&…

【c语言】atoi函数---使用和模拟实现(详解)

atoi函数---使用和模拟实现 atoi函数在Cplusplus中的定义 atoi函数的使用 #include <stdio.h> #include <stdlib.h>int main() {char arr[20] "4831213";int ret 0;ret atoi(arr);printf("arr:%s\n", arr);printf("ret:%d\n", re…

JWT重放漏洞如何攻防?你的系统安全吗?

大家好&#xff0c;我是石头~ 在数字化浪潮席卷全球的今天&#xff0c;JSON Web Token&#xff08;JWT&#xff09;作为身份验证的利器&#xff0c;已成为众多Web应用的首选方案。 然而&#xff0c;正如硬币有两面&#xff0c;JWT的强大功能背后也隐藏着潜在的安全风险&#xf…

手把手教你如何下载学浪上的视频课程

学浪直播课程下载技术尚未攻克&#xff0c;但视频课程下载却易如反掌。 1.首先解压好我给大家准备好的压缩包 学浪下载器链接&#xff1a;https://pan.baidu.com/s/1y7vcqILToULrYApxfEzj_Q?pwdkqvj 提取码&#xff1a;kqvj --来自百度网盘超级会员V10的分享 2.首先解压我…

OpenHarmony编译构建系统

这篇来聊聊OpenHarmony的编译构建&#xff0c;经过前面的实践&#xff0c;再来看编译构建。 编译构建概述 在官网中提到了&#xff0c;OpenHarmony编译子系统是以GN和Ninja构建为基座&#xff0c;对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能…

数据采集仪:自动化监测系统的核心组件

在当代的工业自动化领域&#xff0c;数据采集仪成为了一个关键的技术工具&#xff0c;它不仅仅是简单地将电信号转化为数据信号&#xff0c;而是能够实时、有效地处理和显示各种信号&#xff0c;确保整个监测系统的稳定、高效运行。 点击输入图片描述&#xff08;最多30字&…

计算机网络 子网掩码与划分子网

一、实验要求与内容 1、需拓扑图和两个主机的IP配置截图。 2、设置网络A内的主机IP地址为“192.168.班内学号.2”&#xff0c;子网掩码为“255.255.255.128”&#xff0c;网关为“192.168.班内学号.1”&#xff1b;设置网络B内的主机IP地址为“192.168.班内学号100.2”&#…