Matlab中的参数定义

Matlab中的参数定义

文章目录

  • Matlab中的参数定义
    • 写在前面
    • 参数量验证
      • 实际使用
    • 数组有效性检查
      • 被检查数据类型
      • 有效数据类型
      • 有效属性
      • 举例说明
    • 文本有效性检查
      • 举例说明
    • 参考

写在前面

Matlab是一种非类型化语言,大多数函数都不需要参数声明或验证。但是为了保证程序的通用性和按照预期工作,对参数进行验证是非常有必要的。

参数量验证

参数量验证是为了验证输入输出参数的数量

  • 所用到的函数
% 可变长度输入参数列表
varargin
% 函数输入参数数目
nargin
% 验证输入参数数目
narginchk
% 可变长度的输出参数列表
varargout
% 函数输出参数数目
nargout
% 验证输出参数数目
nargoutchk

实际使用

  • varargin可变长度输入参数列表,用在函数声明的最后一个参数,表示函数可接受任意长度参数输入,并且以1*N的元组形式存储。

  • varargin 是函数定义语句中的一个输入变量,允许函数接受任意数量的输入参量。使用小写字符指定 varargin。在任何显式声明的输入项后,附加 varargin 作为最后一个输入参量。

    在执行函数时,varargin 是一个 1×N 元胞数组,其中 N 是函数在显式声明的输入后收到的输入项数。如果该函数在显式声明的输入后未收到任何输入,则 varargin 是空元胞数组。

    % 将输入参数进行累加
    function sum = mySum_varargin(varargin)disp("输入参数总量:" + nargin)	% 输入参数的总量sum = 0;for i = 1 : length(varargin)sum = sum + varargin{i};	% 元组可通过{i}访问元素end
    end%% 调用
    mySum_varargin(1.2,2.5,pi)
    
  • nargin

    % nargin 在函数内部当作变量使用返回输入参数的数量
    function sum=mySum(a,b)nargin % 这里 nargin = 2sum = a + b;
    end% nargin('mySum') 返回函数mySum输入参数的数量,注意这里是函数字符串
    % nargin() 若返回负数,则表示输入参数是可变参数,如-1:第一个参数是参数数, -3:第三个参数是可变参数
    nargin('mySum')% nargout 在函数内部
  • narginchk(minArgs,maxArgs)验证当前执行的函数调用中的输入参量数目。如果调用中指定的输入数目小于 minArgs 或大于 maxArgsnarginchk 将引发错误。如果输入数目在 minArgsmaxArgs 之间(包括二者),则 narginchk 不会执行任何操作。

    % 将输入参数进行累加
    function sum = mySum_varargin(varargin)disp("输入参数总量:" + nargin)	% 输入参数的总量narginchk(2,5); % 输入参数数量的小于2大于5sum = 0;for i = 1 : length(varargin)sum 

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

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

相关文章

0204克拉默法则-矩阵及其运算-线性代数

含有n个未知数 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1​,x2​,⋯,xn​的n个线性方程的方程组 { a 11 x 1 a 12 x 2 ⋯ a 1 n x n b 1 , a 21 x 1 a 22 x 2 ⋯ a 2 n x n b 2 , ⋯ ⋯ , a n 1 x 1 a n 2 x 2 ⋯ a n n x n b n , \begin{cases} a_{11}x_1a_{1…

以Kotti项目为例使用pytest测试项目

在维护和构建大型项目时,单独一个一个手工测试代码已经不适用了,这时候就要用专门的测试框架进行测试。让我们以Kotti项目为例,用pytest这个测试框架进行实践测试吧。 使用python3.10 Ubuntu 系统 准备工作 下载和安装kotti库 pip install…

Flutter 解决NestedScrollView与TabBar双列表滚动位置同步问题

文章目录 前言一、需要实现的效果如下二、flutter实现代码如下:总结 前言 最近写flutter项目,遇到NestedScrollView与TabBar双列表滚动位置同步问题,下面是解决方案,希望帮助到大家。 一、需要实现的效果如下 1、UI图&#xff1…

代码随想录算法训练营三刷day46 | 动态规划之139.单词拆分

三刷day46 139.单词拆分1.确定dp数组以及下标的含义2.确定递推公式3.dp数组如何初始化4.确定遍历顺序5.举例推导dp[i] 139.单词拆分 题目链接 解题思路:单词就是物品,字符串s就是背包,单词能否组成字符串s,就是问物品能不能把背包…

蓝桥杯-DS18B20温度传感器

一.管脚&芯片&寄存器 1.芯片 2.了解封装以及引脚的用法 3.相关寄存器 报警功能 二,如何使能DS18B20芯片 1.初始化芯片&比赛提供的驱动代码 比赛提供的底层驱动代码 /* # 单总线代码片段说明1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考…

【前沿模型解析】潜在扩散模 1 | LDM第一阶段-感知图像压缩总览

文章目录 0 开始~1 感知压缩的目的2 自回归编码器-解码器生成模型一览2.1 AE 自编码器2.2 VAE 变分自编码器2.3 VQ-VAE2.4 VQ-GAN 3 代码部分讲解总览 0 开始~ 从今天起呢,我们会剖析LDM(潜在扩散模型) 从去年开始,大量的生成模…

椋鸟数据结构笔记#7:堆排序、TopK

文章目录 堆排序堆排序的实现 TopK问题用堆实现TopK的时间复杂度TopK问题的实现 萌新的学习笔记,写错了恳请斧正。 堆排序 堆排序,就是利用堆的思想进行排序,是一种非常高效的排序方法。 它的基本思想是将待排序的序列构建成一个堆&#xf…

前端开发学习笔记4 (CSS三大特性、CSS盒子模型、CSS圆角边框、CSS盒子阴影、CSS文字阴影)

文章目录 CSS三大特性层叠性继承性优先级 CSS盒子模型网页布局的核心和过程盒子模型的组成盒子模型的边框盒子模型的内边距盒子模型的外边距 CSS圆角边框CSS盒子阴影CSS文字阴影 CSS三大特性 层叠性 基本概念:给相同的选择器设置了相同的样式,则此时一…

【mac操作】brew指令集

brew指令集记录 1. brew search 【软件名称】2. rm -rf $(brew --cache)3. brew install 【软件名】4. brew uninstall 【软件名】5. 未完待续,,,, 官网路径: Homebrew官网 最上面就来一个homebrew安装指令吧&#xf…

三、Jenkins相关操作

Jenkins操作 一、插件管理1.修改公共插件源2.下载中文汉化插件2.1 安装插件2.2 重启2.3 设置为中文 3.远程部署插件 二、用户权限管理1.安装权限插件2.开启权限3.创建角色3.1 Global roles3.2 Item roles 4.创建用户5.给用户分配角色 三、凭证管理四、Git管理1.账号密码方式1.1…

深入浅出 -- 系统架构之Keepalived搭建双机热备

Keepalived重启脚本双机热备搭建 ①首先创建一个对应的目录并下载keepalived安装包(提取码:s6aq)到Linux中并解压: [rootlocalhost]# mkdir /soft/keepalived && cd /soft/keepalived [rootlocalhost]# wget https://www.keepalived.…

【Flutter】Getx设计模式及Provider、Repository、Controller、View等

本文基于Getx 4,x 本本 1、引入 再次接触到Flutter项目,社区俨然很完善和活跃。pubs.dev 寻找状态管理的时候看到很熟悉的Getx时间,俨然发现Getx的版本已到是4.x版本,看到Getx的功能已经非常强大了,庞大的API俨然成为一种开发框架…

c# wpf LiveCharts 简单试验

1.概要 1.1 说明 1.2 环境准备 NuGet 添加插件安装 2.代码 <Window x:Class"WpfApp3.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"…

基于单片机电子密码锁系统设计

**单片机设计介绍&#xff0c;基于单片机电子密码锁系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机电子密码锁系统设计概要主要包括以下几个方面&#xff1a; 一、系统概述 基于单片机电子密码锁系统是一个…

谈谈Python中的内存管理和垃圾回收机制

谈谈Python中的内存管理和垃圾回收机制 Python中的内存管理和垃圾回收机制是其运行时的关键组成部分&#xff0c;它们共同确保了程序能够高效、安全地执行&#xff0c;并防止内存泄漏等问题。下面&#xff0c;我们将深入探讨Python的内存管理和垃圾回收机制。 一、内存管理 …

c++11的重要特性2

可变参数模板在3中。 目录 ​编辑 1、统一的列表初始化&#xff1a; std::initializer_list&#xff1a; std::initializer_list是什么类型&#xff1a; std::initializer_list使用场景&#xff1a; 让模拟实现的vector也支持{}初始化和赋值 2、声明 auto decltype nul…

深入浅出 -- 系统架构之分布式多形态的存储型集群

一、多形态的存储型集群 在上阶段&#xff0c;我们简单聊了下集群的基本知识&#xff0c;以及快速过了一下逻辑处理型集群的内容&#xff0c;下面重点来看看存储型集群&#xff0c;毕竟这块才是重头戏&#xff0c;集群的形态在其中有着多种多样的变化。 逻辑处理型的应用&…

Leetcode 553. 最优除法

给定一正整数数组 nums&#xff0c;nums 中的相邻整数将进行浮点除法。例如&#xff0c; [2,3,4] -> 2 / 3 / 4 。 例如&#xff0c;nums [2,3,4]&#xff0c;我们将求表达式的值 “2/3/4”。 但是&#xff0c;你可以在任意位置添加任意数目的括号&#xff0c;来改变算数的…

SQL注入---POST注入

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一. POST提交概述 在Webshell文章中介绍过post提交和get提交的区别&#xff0c;这里不再赘述 post提交和get提交的区别&#xff1a; get方式提交URL中的参数信息&#xff0c;post方式则是将信…

opencv-python库 cv2开运算闭运算形态学梯度顶部帽底部帽

文章目录 开运算闭运算形态学梯度顶部帽底部帽cv2.morphologyEx() 开运算 cv2中的开运算是图像依次经过腐蚀、膨胀处理后的过程。 开运算实际是先腐蚀运算&#xff0c;再膨胀运算&#xff0c;可以把细微连在一起的两块目标分开。一般来说&#xff0c;开运算可以使图像的轮廓变…