当前位置: 首页 > news >正文

【Matlab仿真】Matlab Function中如何使用静态变量?

背景

根据Simulink的运行机制,每个采样点会调用一次MATLAB Function的函数,两次调用之间,同一个变量的前次计算的终值如何传递到当前计算周期来?其实可以使用persistent变量实现函数退出和进入时内部变量值的保持。

persistent变量

1、persistent变量是定义在某个函数内的变量类型,可在函数调用的不同次数间保持上一次退出该函数的值。它同global全局变量的类似之处在于MATLAB为它们创建永久数据区域,不同之处在于它只能被声明在它的函数内部识别,目的是免除此变量被其他函数或命令行修改值而造成用户无法确保其值的困扰。
2、声明persistent变量时它刚刚被创建,还不具有初始值,其内容为空值[],调用声明persistent变量的函数时先判断persistent变量是否为空,如果是空则初始化为0,非空则直接使用,他们会记得上次被调用的值。

persistent变量使用注意事项

  1. persistent变量不能作为函数的输出输出函数,否则会报错。如果需要观察,可以借助中间变量观测。
  2. persistent变量不能同当前工作空间中已经存在的变量同名,否则会报错。
  3. persistent变量不能声明在Command Window里,必须在函数内声明。

仿真验证

在Matlab Function函数中声明cnt变量,如果需要观察cnt的变化,通过中间变量g_cnt观测。

persistent cnt
if isempty(cnt)cnt = 0;   % 显式初始化
end
cnt = cnt + 1;
g_cnt = cnt;

结果如下:
在这里插入图片描述

http://www.lryc.cn/news/542923.html

相关文章:

  • DeepSeek 提示词:高效的提示词设计
  • 深入学习Java中的Lambda表达式
  • 1.2 AI 量化炒股的起源与发展
  • 计算机单位之详解——存储单位Byte 网络传输单位bps 视频码率单位bps
  • IDEA关闭SpringBoot程序后仍然占用端口的排查与解决
  • deepseek清华大学第二版 如何获取 DeepSeek如何赋能职场应用 PDF文档 电子档(附下载)
  • 【python随手记】——读取文本文件内容转换为json格式
  • k8s集群3主5从高可用架构(kubeadm方式安装k8s)
  • 基于 sklearn 的均值偏移聚类算法的应用
  • 三、大模型微调的多种方法与应用场景
  • 第2课 树莓派镜像的烧录
  • SQL之order by盲注
  • AI大模型(四)基于Deepseek本地部署实现模型定制与调教
  • java后端开发day19--学生管理系统升级
  • MFC文件和注册表的操作
  • vscode如何使用鼠标滚轮调整字体大小
  • C++之vector和list辨析
  • 冯诺依曼体系结构 ──── linux第8课
  • EX_25/2/22
  • rust安装教程以及git连接到远程仓库
  • Kafka系列之:记录一次源头数据库刷数据,造成数据丢失的原因
  • VC++零基础入门之系列教程 【附录E MFC快速参考指南】
  • 在CentOS 7下部署NFS的详细教程
  • LabVIEW C编译支持工具库CCompileSupp.llb
  • 【含文档+PPT+源码】基于微信小程序的农产品自主供销商城系统
  • MongoDB私人学习笔记
  • C++---了解STL
  • 智能自动化新纪元:AI与UiPath RPA的协同应用场景与技术实践
  • 2025年2月科技热点深度解析:AI竞赛、量子突破与开源革命
  • 计算机网络————(三)