Varargin = var+ arg+ in = variable length(可变长) input argument(输入参数) list(列表)

:允许调用该函数时根据需要改变输入参数的个数

Nargin :在matlab中定义一个函数时,在函数内部,nargin指出了输入参数的个数。特别是在使用了varargin(可变参数列表)的函数中,用nargin获取输入参数个数很方便。

Varargout :同varargin相似,不同的是得到可变的函数返回值

Nargout:与varargout搭配,指出了输出参数的个数

给两个例子(没有matlab语言编辑选项,采用了c++的)
%一个参数可变的赋值函数
function varargout=Var1(varargin) fprintf('How many output arguments?¡ª%d\nAnd they are:\n',nargout); for k=:nargout varargout(k)=varargin(k) %as the same as varargin{k} fprintf('%s',num2str(varargout{k})); %如果这里{k}改成(k)会报错 end %disp(''); End

%%默认赋值和internal内嵌函数
%调用形式为:
%X=:;
%Y=:-:;
%result=lrh(x,y,'Algorithm','+','U',,'Sqornot','false'); %%一个运算函数,通过输入变化来确定运算公式
function result=var2(x,y,varargin)
% x,y 为长度为1的数值 向量 %%设置默认属性
%algorithm 包含 加减乘除 四中运算
%A,B分别为x,y前系数
%U是截距项 默认为长度为1的零向量
%sqornot表示是否开方
paraNames={'Algorithm','A','B','U','Sqornot'};
vU=zeros(,length(x));
defaultValue={'+',,,vU,'false'};%daultValue中的值和paraNames中的项一一对应,表示其默认值 %%对每个属性赋默认值
[vAlgorithm,vA,vB,vUU,vSqornot]=internal.stats.parseArgs(paraNames,defaultValue,varargin{:}); %%报错功能
AlgorithmNames={'+','-','*','/'};
vAlgorithm=internal.stats.getParamVal(vAlgorithm,AlgorithmNames,...
'''Algorithm''');
SqornotNames ={'true','false'};
vSqornot =internal.stats.getParamVal(vSqornot,SqornotNames,...
'''Sqornot'''); %%主函数
vUU=zeros(,length(x))+vUU;
switch vAlgorithm
case'+'
switch vSqornot
case 'true'
result=sqrt(vA*x+vB*y+vUU);
case 'false'
result=vA*x+vB*y+vUU;
end
case '-'
switch vSqornot
case 'true'
result=sqrt(vA*x-vB*y-vUU);
case 'false'
result=vA*x-vB*y-vUU;
end
case '*'
switch vSqornot
case 'true'
result=sqrt((vA*x).*(vB*y).*vUU);
case 'false'
result=(vA*x).*(vB*y).*vUU;
end
case '/'
switch vSqornot
case 'true'
result=sqrt((vA*x)./(vB*y)./vUU);
case 'false'
result=(vA*x)./(vB*y)./vUU;
end
end

function B=Var3(varargin)
% varargin是matlab内部变量,cell型,依次存储函数的所有输入变量
% 如add(A1, A2, A3), 则 varargin{} = A1,varargin{} = A2, varargin{} = A3
% nargin同样也是matlab内部变量, 为函数输入变量的个数
%如果变量个数小于2大于3,则报错
error(nargchk(,,nargin));%nargchk是一个范围确认函数,判断nargin的值是否在[,]中
if nargin ==
A1= varargin{};
A2= varargin{};
B=A1+A2;
else
A1= varargin{};A2=varargin{};
A3=varargin{};
B=A1*A2*A3;
end

Matlab 中的varargin/nargin varargout/nargout的更多相关文章

  1. matlab 中关于 varargin 参数

    varargin 提供了一种函数可变参数列表机制,允许调用者调用该函数时根据需要来改变输入参数的个数: varargin{1}代表可变参数列表的第一个实参,同理varargin{2}代表可变参数列表的 ...

  2. MATLAB中的nargin与varargin的用法

    nargin的用法: nargin:number of function input arguments,指的是一个函数的输入变量的个数. 用法:nargin或着nargin(fx), 其中fx指的是 ...

  3. matlab中nargin函数输入参数数目

    来源:https://ww2.mathworks.cn/help/matlab/ref/nargin.html?searchHighlight=nargin&s_tid=doc_srchtit ...

  4. Matlab 中 Data-driven 风格的 API 设计

    设计 所谓 data-driven API,指的是用户可以把"操作"作为参数,传入函数,像下面这种: stream = dataStream('load', 'example.cs ...

  5. matlab中help所有函数功能的英文翻译

    doc funname 在帮助浏览器中打开帮助文档 help funname 在命令窗口打开帮助文档 helpbrowser 直接打开帮助浏览器 lookfor funname 搜索某个关键字相关函数 ...

  6. matlab中m文件与m函数的学习与理解

    1. m文件与m函数的区别 所谓 MATLAB 程序,大致分为两类: M 脚本文件 (M-Script) 和 M 函数 (M-function), 它们均是普通的 ASCII 码构成的文件. M 脚本 ...

  7. Mathlab编程-微积分在Matlab中的解法

    这一章节将介绍一系列典型的微积分问题(求极限.级数.定积分.导数.重积分等)在Matlab中的求解. 首先关于极限: (1)    数列极限: 给出下面三段例程. 求解数列极限的limit函数参数说明 ...

  8. MATLAB 中gcf、gca 以及gco 的区别

    MATLAB 中gcf.gca 以及gco 的区别gcf 返回当前Figure 对象的句柄值gca 返回当前axes 对象的句柄值gco 返回当前鼠标单击的句柄值,该对象可以是除root 对象外的任意 ...

  9. MATLAB中绘制质点轨迹动图并保存成GIF

    工作需要在MATLAB中绘制质点轨迹并保存成GIF以便展示. 绘制质点轨迹动图可用comet和comet3命令,使用例子如下: t = 0:.01:2*pi;x = cos(2*t).*(cos(t) ...

随机推荐

  1. 指针小白:修改*p与p会对相应的地址的变量产生什么影响?各个变量指针的长度为多少?

    这两天敲代码碰到了一个这样的问题 代码如下: #include <stdio.h> #include <stdlib.h> int main() { ; int* p=& ...

  2. (转)service apache2 restart失败

    https://askubuntu.com/questions/431925/how-to-restart-apache2-when-i-get-a-pid-conflict sudo kill -9 ...

  3. LeetCode初级算法的Python实现--字符串

    LeetCode初级算法的Python实现--字符串 # 反转字符串 def reverseString(s): return s[::-1] # 颠倒数字 def reverse(x): if x ...

  4. Python前戏

    1.Python解释器 官网:https://www.python.org/getit/ 因为Python的3.0和2.0版本有所差别,所以根据个人学习方向分别下载安装. 安装验证:打开命令提示符,执 ...

  5. 笔记-sql语句

    笔记-sql语句 1.      sql语句基础 虽然经常使用sql语句,但没有一个整体式的文档,整理了一下. 1.1.    select foundation: select <colnum ...

  6. NoSQL入门第五天——Java连接与整合操作

    一.测试联通 1.新建个web工程 2.导入jar:当然实际使用的时候肯定是通过maven来构建(如果有机会,可以尝试学习gradle进行构建) 3.建个测试类:好久没开eclipse了,希望后面可以 ...

  7. jxls-1.x导出excel入门——基本操作

    请注意,一下内容均基于1.x版本,2.x版本将另开随笔记录 一.概述  JXLS是基于Jakarta POI API的Excel报表生成工具,可以生成精美的Excel格式报表.它采用标签的方式,类似J ...

  8. 环境变量Path简介

    更多详细专业的详解,请参见:http://www.cnblogs.com/sunada2005/articles/2725277.html 什么是Path变量: PATH环境变量.作用是指定命令搜索路 ...

  9. CF 741 D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths

    D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths http://codeforces.com/problemset/probl ...

  10. 浅谈如何提高自动化测试的稳定性和可维护性 (pytest&allure)

    装饰器与出错重试机制 谈到稳定性,不得不说的就是“出错重试”机制了,在自动化测试中,由于环境一般都是测试环境,经常会有各种各种的抽风情况影响测试结果,这样就为测试的稳定性带来了挑战,毕竟谁也不想自己的 ...