当前位置: 首页 > 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;

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

相关文章:

  • Solidity 开发环境
  • 【含文档+PPT+源码】基于微信小程序的农产品自主供销商城系统
  • 2.1部署logstash:9600
  • JavaWeb-GenericServlet源码分析(适配器/模板方法)
  • ref和reactive的区别 Vue3
  • Java进阶(vue基础)
  • 对比 Vue 中的 defineAsyncComponent 和 React 中的 lazy
  • 虚中断理解
  • 面试基础----ReentrantLock vs Synchronized
  • idea创建第一个springboot程序
  • dart语言基本介绍及基本语法
  • 树莓派学习【2】开机自动启动程序的方法
  • Android 8.0 (API 26) 对广播机制做了哪些变化
  • MQTT实现智能家居------4、在Linux上运行MQTT
  • MySql常用指令
  • 请谈谈 React 中的状态管理,如何使用 Context API 和 Redux 进行状态管理?
  • 在 Windows 下的 Docker 中安装 R语言
  • 微服务即时通信系统---(六)语音识别子服务
  • Mac 上安装多版本的 JDK 且实现 自由切换
  • Zabbix问题记录2--踩坑HttpRequest,header添加无效
  • 滁州网站定制/cms网站模板
  • wordpress 可以干嘛/seo关键词首页排名
  • 深圳整合营销/北京seo培训机构
  • 网站建设销售销售流程/百度关键词统计
  • 网站建设截图/今日新闻头条
  • 邢台做网站优化价格/中国知名网站排行榜