MATLAB6:M文件和控制流
文章目录
- 一、实验目的
- 二、实验内容
- 三、仿真结果
- 四、实践中遇到的问题及解决方法
一、实验目的
1. 熟悉运用MATLAB的控制指令。
2. 理解M脚本文件和函数文件的本质区别。
3. 能够运用所学知识,编制程序解决一般的计算问题。
二、实验内容
1.for循环结构及注释
for x=array
(commands)
end
A、x为循环变量,(commands)为循环体
B、X依次取array中的元素,每取一次,执行一次commands,直到x大于array中的最后一个元素
C、循环次数确定
2.使用for循环的注意事项
A、在for后面的表达式中的数组可以是任何合法的MATLAB数组
B、 应该尽量提高代码向量化程度,避免循环
C、避免使用i,j作为循环变量
3.while循环结构
while expression
(commands)
end
A、expression的值为逻辑真(非0),则执行循环体,直到表达式值为假,结束循环。
B、循环次数不确定
4.使用while循环的注意事项
A、一般情况下,expression表达式都是标量
B、MATLAB允许它为数组,此时只有数组元素都为真时,循环体才被执行
C、如果表达式为空数组,被认为是假
5.While循环与for循环的区别
while循环体被执行的次数是不确定的(由expression的值决定),而for结构中循环体的执行次数是确定的(由for后的数组的列数决定)
6.if-else-end分支结构
if expr1 %expr为条件表达式,该表达式结果为“标量逻辑1或0”
(commands1) %expr允许为空数组,此时认为条件为假
elseif expr2 %expr只有当逻辑数组全为1时,该分支才被执行
(commands2)
………
else
(commandsk)
end
7.switch-case结构
switch expr %expr为表达式
case value_1 %value_1为给定值(数值,字符串标量,胞元数组)
(commands1) %expr等于value_1时,执行组命令1,然后跳过该结构
……
case value_k
(commandsk) %ex等于testk时,执行组命令k,然后跳过该结构
otherwise %以上情况“并”的“补”,可无
(commands) %若所有case都补发生,则执行该组命令
end
8.常见指令
指令 | 说明 |
---|---|
break指令 | break指令,或导致包含该指令的while、for 循环终止,或在if - end, switch - case, try – catch中导致中断。 |
continue指令 | 跳过位于它之后的循环体中其他指令,而执行循环的下一个迭代… |
pause和pause(n) | A、第一种格式使程序暂停执行,等待用户按任意键继续;B、第二种格式使程序暂停n秒后,再继续执行。 |
return | 结束return指令所在函数的执行,而把控制转至主调函数或者指令窗。否则,只有待整个被调函数执行完后,才会转出。 |
9.M文件的一般结构
结构 | 说明 |
---|---|
函数声明行(Function declaration line) | 位于函数文件的首行,以关键字function开始,函数名及输入输出量都由次行定义。 |
H1行(The first help text line) | 紧随函数声明行后的第一注释行。 |
在线帮助文本区(Help text) | H1行及其后的连续注释行。通常包括:函数输入输出量的含义,调用格式说明 |
编写和修改记录 | 与在线帮助文本区相隔一个空行的注释行。标志编写、修改该文件的作者、日期、版本记录。用于软件档案管理 |
函数体(Function body) | 用MATLAB指令实现函数功能。只有函数声明和函数体是函数文件必不可少的部分 |
三、仿真结果
1.分别用for和while语句编写计算K=1+2+22+…+263的程序。另编写一种不用循环的计算程序。
答:for语句:
>>a(1)=1;a(2)=3;
for ii=2:63a(ii+1)=2^(ii)+a(ii);
end;a(ii+1)
while语句:
>> a(1)=1;a(2)=3;ii=2;
while ii<=63a(ii+1)=2^(ii)+a(ii);ii=ii+1;
end;a(ii)
不用循环的计算程序:
>>x=0:63;
y=2.^(x);
sum(y)
2.计算f(x)中x从0到15的累加求和,f(x)=0,x<=5;(x-3)/4,5<x&x<=10;2x,x>10
答:
>> x=6:10;
y=(x-3)/4;
c1=sum(y);
a=11:15;
b=2*a;
c2=sum(b);
c=c1+c2
c =136.2500
3.有一群鸡和兔子,加在一起头的数量是36,脚的数量是100,编程序解答鸡和兔子数量各是多少?
答:设鸡有x只,兔子有y只。由已知条件,可得方程组x+y=36和2x+4y=100。令A=[1,1;2,4],B=[36;100],编程结果如下:
>> A=[1,1;2,4];
B=[36;100];
X=A\B
X =2214
4.产生20个两位随机整数,输出其中小于平均值的奇数。
答:
>> a=fix(rand(2,10)*100)
b=mean(sum(a))
h=1;
for i=1:20if (a(i)<b)&&( rem((a(i)+1),2)==0 )c(h)=a(i);h=h+1;end
end,c
a =78 24 9 94 57 23 82 4 64 6438 40 13 95 5 35 1 16 73 45
b =86
c =9 13 57 5 23 35 1 73 45 11
四、实践中遇到的问题及解决方法
1.问题:开始我只会用MATLAB产生随机数,不会产生20个两位随机整数
解决办法:思路:先产生20个随机数,因为产生的随机数是与小数形式产生的,乘于100后就是带有两个小数的两位数,在求整,就达到要求了,具体程序可以写成:a=fix(rand(1,20)*100),其中fix表示取整数。
2. 问题:不会求平均值。例如求一个4X5数组A中所以元素的平均值
解决办法:可以使用mean函数,但需要注意它的用法。用法一:mean(A),默认是先求得每一列的的和,然后对每一个列求平均值。用法二:mean(sum(A)),此时所输出的就是整个数组的平均值,需要加以注意
3.问题:matlab里,不会用if语句判断奇数偶数?
解决办法:对x判断奇数偶数,可以采用以下程序:a = mod(x,2);或a= rem(x,2)。MATLAB结果显示:如果a=1,说明x为奇数;如果a=0,说明x为偶数。
4. 问题:建立函数文件命名时没有与函数指令的名称一致,导致函数不能调用。
解决办法:函数文件的名称必须与函数指令的名称一致,否则函数不能调用
相关文章:
MATLAB6:M文件和控制流
文章目录 一、实验目的二、实验内容三、仿真结果四、实践中遇到的问题及解决方法 一、实验目的 1. 熟悉运用MATLAB的控制指令。 2. 理解M脚本文件和函数文件的本质区别。 3. 能够运用所学知识,编制程序解决一般的计算问题。 二、实验内容 1.for循环结构及注…...

网页数据抓取:融合BeautifulSoup和Scrapy的高级爬虫技术
网页数据抓取:融合BeautifulSoup和Scrapy的高级爬虫技术 在当今的大数据时代,网络爬虫技术已经成为获取信息的重要手段之一。Python凭借其强大的库支持,成为了进行网页数据抓取的首选语言。在众多的爬虫库中,BeautifulSoup和Scrap…...

Linux应用——网络基础
一、网络结构模型 1.1C/S结构 C/S结构——服务器与客户机; CS结构通常采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互任务。客户机是因特网上访问别人信息的机器,服务器则是提供信息供人访问的计算机。 例如&…...
白骑士的C++教学实战项目篇 4.3 多线程网络服务器
系列目录 上一篇:白骑士的C教学实战项目篇 4.2 学生成绩管理系统 在这一节中,我们将实现一个多线程网络服务器项目,通过该项目,我们将学习套接字编程的基础知识以及如何使用多线程处理并发连接。此外,我们还将实现一个…...

Go语言并发编程-Context上下文
Context上下文 Context概述 Go 1.7 标准库引入 context,译作“上下文”,准确说它是 goroutine 的上下文,包含 goroutine 的运行状态、环境、现场等信息。 context 主要用来在 goroutine 之间传递上下文信息,包括:取…...

React@16.x(62)Redux@4.x(11)- 中间件2 - redux-thunk
目录 1,介绍举例 2,原理和实现实现 3,注意点 1,介绍 一般情况下,action 是一个平面对象,并会通过纯函数来创建。 export const createAddUserAction (user) > ({type: ADD_USER,payload: user, });这…...
【Qt】QTcpServer/QTcpSocket通信
这里写目录标题 1.pro文件2.服务器3.客户端 1.pro文件 QT network2.服务器 h文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTcpServer> #include <QTcpSocket>QT_BEGIN_NAMESPACE namespace Ui { class MainW…...
【时时三省】单元测试 简介
目录 1,单元测试简介 2,单元测试的目的 3,单元测试检查范围 4,单元测试用例设计方法 5,单元测试判断通过标准 6,测试范围 7,测试频率 8,输出成果 经验建议: 山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 1,单元测试简介 单元测试在以V模型…...

中间件——Kafka
两个系统各自都有各自要去做的事,所以只能将消息放到一个中间平台(中间件) Kafka 分布式流媒体平台 程序发消息,程序接收消息 Producer:Producer即生产者,消息的产生者,是消息的入口。 Brok…...

中介者模式(行为型)
目录 一、前言 二、中介者模式 三、总结 一、前言 中介者模式(Mediator Pattern)是一种行为型设计模式,又成为调停者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地互相引用,从而使其耦合…...
定个小目标之刷LeetCode热题(45)
32. 最长有效括号 给你一个只包含 ( 和 ) 的字符串,找出最长有效(格式正确且连续)括号 子串的长度。 示例 1: 输入:s "(()" 输出:2 解释:最长有效括号子串是 "()"有事…...
golang 实现负载均衡器-负载均衡原理介绍
go 实现负载均衡器 文章目录 go 实现负载均衡器代码实现介绍负载均衡的核心组件与工作流程核心组件工作流程 总结 算法详细描述:1. 轮询(Round Robin)2. 最少连接(Least Connections)3. IP散列(IP Hash&…...

spring是如何解决循环依赖的,为什么不是两级
1. Spring使用三级缓存来解决循环依赖问题 Spring使用三级缓存来解决循环依赖问题,而不是使用两级缓存。 在Spring框架中,解决循环依赖的关键在于正确地管理Bean的生命周期和依赖关系。循环依赖指的是两个或多个Bean相互依赖,如果…...

大模型预训练优化参数设置
文章目录 基于批次数据的训练学习率优化器稳定优化技术与传统神经网络的优化类似,通常使用批次梯度下降算法来进行模型参数的调优。同时,通过调整学习率以及优化器中的梯度修正策略,可以进一步提升训练的稳定性。为了防止模型对数据产生过度拟合,训练中还需要引入一系列正则…...

PHP pwn 学习 (2)
文章目录 A. 逆向分析A.1 基本数据获取A.2 函数逆向zif_addHackerzif_removeHackerzif_displayHackerzif_editHacker A.3 PHP 内存分配 A.4 漏洞挖掘B. 漏洞利用B.1 PHP调试B.2 exp 上一篇blog中,我们学习了一些PHP extension for C的基本内容,下面结合一…...

【Python学习笔记】:Python爬取音频
【Python学习笔记】:Python爬取音频 背景前摇(省流可以不看): 人工智能公司实习,好奇技术老师训练语音模型的过程,遂请教,得知训练数据集来源于爬取某网页的音频。 很久以前看B站同济子豪兄的《…...

4 C 语言控制流与循环结构的深入解读
目录 1 复杂表达式的计算过程 2 if-else语句 2.1 基本结构及示例 2.2 if-else if 多分支 2.3 嵌套 if-else 2.4 悬空的 else 2.5 注意事项 2.5.1 if 后面不要加分号 2.5.2 省略 else 2.5.3 省略 {} 2.5.4 注意点 3 while 循环 3.1 一般形式 3.2 流程特点 3.3 注…...
vue排序
onEnd 函数示例,它假设 drag.value 是一个包含多个对象(每个对象至少包含 orderNum 和 label 属性)的数组,且您希望在拖动结束后更新所有元素的 orderNum 以反映新的顺序: function onEnd(e) { // 首先,确…...
agv叉车slam定位精度测试标准化流程
相对定位精度 条件:1.5m/s最高速度;基于普通直行任务 数据采集(3个不同位置的直行任务,每个任务直行约10m,每个10次) 测量每次走过的实际距离,与每次根据定位结果算得的相对距离,两…...

实战打靶集锦-31-monitoring
文章目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 ssh服务4.2 smtp服务4.3 http/https服务 5. 系统提权5.1 枚举系统信息5.2 枚举passwd文件5.3 枚举定时任务5.4 linpeas提权 6. 获取flag 靶机地址:https://download.vulnhub.com/monitoring/Monitoring.o…...

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...