matlab基础语法2_matlab的函数_句柄

2023-11-20

函数是模块化,抽象化的实施者。

如何查看matlab的内建函数

查看matlab内建的函数“mean.m”, 计算平均数

在命令行窗口输入edit(which('mean.m')) 会跳出一个.m文件

>> edit(which('mean.m'))

function y = mean(x,dim,flag,flag2)
%MEAN   Average or mean value.
%   S = MEAN(X) is the mean value of the elements in X if X is a vector. 
%   For matrices, S is a row vector containing the mean value of each 
%   column. 
%   For N-D arrays, S is the mean value of the elements along the first 
%   array dimension whose size does not equal 1.
%
.........

函数格式

function y = mean(x,dim,flag,flag2)

  • function : 函数的关键字
  • y: output返回值
  • mean: 函数名字,这个函数名要和脚本名一样
  • x,dim,flag,flag2 : input, 函数传参数。
例1:编写自由落体

x   =   x 0 + v 0 + 1 2 g t 2 x\ =\ x_0+v_0+\frac{1}{2}gt^2 x = x0+v0+21gt2

function x = freebody(x0,v0,t)
% calculation of free falling
% x0: initial displacement in m
% v0: initial velocity in m/sec
% t: the elapsed time in sec
% x: the depth of falling in m
x = x0 + v0 .* t + 0.5*9.8*t.*t

.*是元素和元素直接相乘。
运行:

>> freebody(0,0,10)
x =
     490       
ans =
     490       
例2:多个输出和输入

a   =   v 2 − v 1 t 2 − t 1 a\ =\ \frac{v_2-v_1}{t_2-t_1} a = t2t1v2v1
F = m a F=ma F=ma

function [a F] = acc(v2,v1,t2,t1,m)
a= (v2 - v1)./(t2-t1);
F=m.*a;

输出:

>>[Acc Force] = acc(20,10,5,4,1)
Acc =
      10       
Force =
      10   

函数默认变量相关

默认变量 说明
inputname 函数输入的变量名
mfilename 当前运行的函数的文件名
nargin 函数输入参数的个数
nargout 函数输出参数的个数
varargin 可变长度的输入参数列表
varargout 可变长度输出参数列表

比如:

function [volume] = pillar(Do,Di,height)
if nargin==2,
	height=1;
end
volume=abs(Do.^2-Di.^2).*height*pi/4;

只输入2个参数,height会有默认值,相当于c++的默认参数

matlab的多参数输入列表

varargin:变输入参数列表。

  1. 指明它用小写的字母表示
  2. 在函数的参数列表中,varargin放最后面
  3. 函数执行,varargin就是一个1*n的cell数组
function var(a,varargin)
fprintf(' arg num: %d\n',nargin);
celldisp(varargin)

可参考
https://www.cnblogs.com/yinheyi/p/5571992.html

调用输出

>> var( 1,1,pi,3)
 arg num: 4
varargin{1} =
       1       
varargin{2} =
     355/113   
varargin{3} =
       3       

同理,varargout也是这样的:
varagrout是一个元胞数组
返回多个参数时,把函数中的相应变量赋给varagrout

可参考:https://blog.csdn.net/congzhao27/article/details/17994799

句柄

>> f = @(x) exp(-2*x);
x = 0:0.1:2;
plot(x,f(x));

f 是个指针:指向exp这个函数
(x) 是out,范围值
(-2*x) 是in 传参数

总结:

matlab函数的特点:

  1. function关键字申明为函数,后面和调用函数一样的表达式。
  2. 参数类型无需指定,直接类型重载
  3. 参数个数可获得,内部传参个数重载
  4. 支持可变参数数量的输入和输出
  5. 使用灵活,应写好注释,对应原理

参考于
MATLAB教程_台大郭彦甫 https://www.bilibili.com/video/BV1GJ41137UH?p=1

被抛弃的写随笔公众号改写技术文章了,感兴趣的可以关注公众号:王崇卫
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab基础语法2_matlab的函数_句柄 的相关文章

  • C++17 中带有 noexcept 的 std::function

    在 C 17 中noexcept 已添加到类型系统中 http www open std org jtc1 sc22 wg21 docs papers 2015 p0012r1 html void r1 void f noexcept f
  • “volatile void function( ... )” 做了什么?

    我见过从语法角度来看 C 函数中 volatile 关键字有多少种用法 https stackoverflow com questions 7643528 how many usage does volatile keyword have
  • C++继承自具有相同虚函数名的多个基类

    我尝试了这段代码 class A virtual void foo 0 class B virtual void foo 0 class C public A public B virtual void A foo virtual void
  • 如何在 Matlab 中对数组应用低通或高通滤波器?

    有没有一种简单的方法可以将低通或高通滤波器应用于 MATLAB 中的数组 我对 MATLAB 的强大功能 或数学的复杂性 有点不知所措 需要一个简单的函数或一些指导 因为我无法从文档或网络搜索中找到答案 看着那 这filter http w
  • Matlab没有优化以下内容吗?

    我有一个很长的向量 1xrv 和一个很长的向量w1xs 和一个矩阵Arxs 它是稀疏的 但维度非常大 我期望 Matlab 对以下内容进行优化 这样我就不会遇到内存问题 A v w 但看起来 Matlab 实际上是在尝试生成完整的v w矩阵
  • 如何在没有安装Visual Studio的另一台机器上使用Visual Studio生成的dll?

    我已经在 Visual Studio 2012 中生成了动态库 我想在另一台机器上使用该库 但我不想在远程机器上安装 Visual Studio 我有 mex 库和 dll 我想运行一个使用这两个库的脚本 当我运行脚本时 出现以下错误 缺少
  • Javascript 函数接受 PHP 变量

    我完全空白 为什么这不起作用 我可以通过一个变量来完成此操作 但不能通过两个变量 当我实际使用像这样的数字时getnt 1 2 有用 它只是不适用于两个 PHP 变量 我可以使代码与echo a href nt php nid n a
  • MATLAB 教程中的 SIFT 实现

    我正在寻找 MATLAB 中的一些基本 SIFT 实现 我需要从第一原则来写它 另外 我正在寻找一些可以解释程序中发生的事情的内容 Vedali 的代码和 David Lowe 的代码超出了我的理解范围 如果您是 Matlab 用户 您一定
  • 如何在 Matlab 中将数组打印到 .txt 文件?

    我才刚刚开始学习Matlab 所以这个问题可能非常基本 我有一个变量 a 2 3 3 422 6 121 9 4 55 我希望将值输出到 txt 文件 如下所示 2 3 3 422 6 121 9 4 55 我怎样才能做到这一点 fid f
  • 是否可以替换 php 中的函数(例如邮件)并使其执行其他操作?

    我想用 PHP 重写一个函数 比如说 mail 函数 并且希望从现在开始调用 mail 时 它将加载我的 mail 版本而不是默认的 php 版本 这在 php 中可能吗 我想这样做的原因是因为我有数千行调用 mail 的代码 并且我不想重
  • Javascript:一般访问函数参数

    这是我所拥有的 var log function arg1 arg2 console log inside arg1 arg2 var wrap function fn return function args console log be
  • 在 Vim 的 `autocmd` 命令中调用函数

    我想使用expand函数在一个autocmd 特别是 我正在改编tip https stackoverflow com questions 1240037 recommended build system for latex 1394702
  • 在 SQLServer 2005 函数中执行动态 SQL

    我在回答这个问题时会说 我不认为这是可以解决的 我还有一个解决方法 我可以创建一个带有输出的存储过程来完成此操作 使用函数对需要此校验和的部分进行编码会更容易 该代码将不起作用 因为Exec SP ExecuteSQL SQL来电 有人知道
  • 查找提供的 Sum 值的组合

    我有一系列这样的数字 myvar 57 71 87 97 99 101 103 113 114 115 128 129 131 137 147 156 163 186 现在我想计算所有这些可能的组合 长度为1到20 其总和等于给定的数字m
  • Excel VBA 中.Delete 和.Clear 的区别?

    有什么区别Worksheets 1 Cells Delete and Worksheets 1 Cells Clear 我问这个是因为我一直用 Clear清除我的工作表内容 但在我之前的帖子中我发现Worksheets 1 Cells De
  • 黑白随机着色的六角格子

    我正在尝试绘制一个 10 000 x 10 000 随机半黑半白的六边形格子 我不知道如何将该格子的六边形随机填充为黑色和白色 这是我真正想要从这段代码中得到的示例 但我无法做到 https i stack imgur com RkdCw
  • 为什么在我的函数输出后打印“None”?

    我尝试编写这段代码 def smaller x y if x gt y print y else print x print smaller 2 3 我得到这个结果 gt gt gt 2 None 哪里去了None来自 这是什么意思 See
  • 通过 Matlab 访问 Physionet 的 ptbdb 中的数据库

    我首先设置系统 old path which rdsamp if isempty old path rmpath old path 1 end 8 end wfdb url http physionet org physiotools ma
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any
  • glpk.LPX 向后兼容性?

    较新版本的glpk没有LPXapi 旧包需要它 我如何使用旧包 例如COBRA http opencobra sourceforge net openCOBRA Welcome html 与较新版本的glpk 注意COBRA适用于 MATL

随机推荐

  • Unity动画控制器animator.CrossFade

    需要特别注意 1 CrossFade虽然可以不用任何逻辑来链接而直接跳转 但是CrossFade只能覆盖其他动画 当当前动画播放完毕而没有跳出这个动画时再次调用CrossFade将会失败 造成动画依旧停在原位 参数animator Cros
  • [学C日记]---数组

    1 数组创建 int count int arr count 不行 中不能使用变量 2 数组的大小可以通过计算得到 int arr 10 int sz sizeof arr sizeof arr 0 在主函数里算 在调用函数里算时 传参的时
  • CTFSHOW-WEB详解

    CTFSHOW WEB详解 一 WEB13 文件上传 二 WEB 红包题第二弹 一 WEB13 文件上传 开始的界面就是文件上传 确定方向为文件上传漏洞分析 尝试上传文件 我上传的第一个文件是一个文本文件很小只有9个字节 就上传成功了直接
  • 数据分析---arXiv论文种类分类

    论文种类分类 4 1 任务说明 主题 论文分类 数据建模任务 利用已有数据建模 对新论文进行类别分类 内容 使用论文标题完成类别分类 4 2 数据处理步骤 在原始arxiv论文中论文都有对应的类别 而论文类别是作者填写的 在本次任务中可以借
  • 修改环境变量后,导致一些常用命令失效,如ll,ls,vi不能用

    因为一不小心将linux的环境变量修改错误 导致ll之类的常用命令都不能用 很是苦恼 通过百度查询 原来在敲命令时 敲完整的命令路径 还是可以的 原文地址 http www cnblogs com zhbsh archive 2011 05
  • 1141 二维数组的输入和输出

    题目描述 输入m行n列的二维数组的值 再按行列形式输出 输入要求 第一行输入m n代表行数和列数 接着输入具体的m n个元素 输出要求 按行列形式换行输出 每一个数据后面都有空格 一行输出完毕后换行 输入样例 2 5 1 4 6 23 1
  • Qt实现窗口关闭时提示确认退出

    Qt实现窗口关闭时提示确认退出 在Qt中 当用户点击窗口关闭按钮时 程序会直接退出 这样可能会导致数据丢失或其他不必要的操作 为了提高用户体验 我们可以在窗口关闭前给出一个提示框 询问用户是否确认退出 一 实现思路 通过重写QWidget类
  • kaggle数据集的下载

    感谢阅读本文 喜欢请收藏点赞 准备工作 1 安装kaggle库 2 注册登录kaggle账户 3 kaggle json的下载与使用 4 下载数据集 文件保存路径 准备工作 1 安装kaggle库 2 注册登录kaggle账户 点我跳转 没
  • R-INLA Project目录

    集成嵌套拉普拉斯近似法 INLA 是一种近似贝叶斯推断的方法 在过去的几年里 由于其速度和通过R INLA软件包的易用性 它已经成为马尔科夫链蒙特卡洛等其他方法的替代品 尽管INLA方法的重点是可以表达为潜伏高斯马尔可夫随机场 GMRF 的
  • SpringMVC视图解析器

    SpringMVC视图解析器 前言 在前一篇博客中讲了SpringMVC的Controller控制器 在这篇博客中将接着介绍一下SpringMVC视图解析器 当我们对SpringMVC控制的资源发起请求时 这些请求都会被SpringMVC的
  • ES: 设置默认值

    场景 XX对象的告警个数字段是数字 优先级字段是数字 排序要求 优先告警个数大 gt 小 其次优先级大 gt 小 问题 告警个数字段不存在或者值为0的情况是等价的 排序上应该是平等的 不应该存在0的大于字段不存在的 处理 对没有告警个数字段
  • Obsidian 使用 Livesync 同步数据

    Obsidian 使用 Livesync 同步数据 之前一直使用 icloud 同步我的 obsidian 笔记 同时定期使用 git 备份笔记 但是前段时间因为在 ios 上误删了一个文件夹 导致我的 icloud 桌面端和手机端的笔记不
  • Ubuntu9.04太多乱码(中文不能正常显示)

    最近在使用Ubuntu9 04的过程中 发现有好多地方都出现乱码 其实是中文不能正常显示 现在把我所遇到的所有乱码问题集中一下 方便以后查阅参考 一 Flash乱码 在终端输入 sudo gedit etc fonts conf d 49
  • linux系统安装python3.9.2

    1 下载安装包 下载地址 https www python org downloads release python 392 在这里插入图片描述 2 下载Python3编译的依赖包 yum install y gcc patch libff
  • Ajax——Ajax的同步与异步以及代码封装(jQuery)

    文章总结目录 1 Ajax的异步与同步 1 1 同步与异步概念 1 2 Ajax在代码上的实现 1 3 Ajax同步与异步使用的场景 2 Ajax代码的封装 2 1 Ajax代码封装的原因 2 2 如何实现Ajax代码的封装 2 3 Aja
  • 为啥MyBatis-Plus 分页插件不生效?

    描述 项目中用到boot 整合 mybatis plus 个人在使用分页条件查询的时候一直查不出 total pages 终于找到原因了 环境
  • 清华大学AIGC发展研究报告1.0版震撼发布!192页PPT

    来源 清元宇宙 人工智能无疑是2023年最受关注的科技热点 作为将会掀起人类再一次生产力革命的重大技术突破 人工智能受到了全球范围内各领域人士的高度关注 近日 清华大学沈阳教授团队发布了 AIGC发展研究报告1 0版 总计192页 分为技术
  • java parser .java_Stanford Parser使用之 Eclipse+java调用

    官网 Download Stanford Parser version 3 2 0 stanford parser full 2013 06 20 zip 解压缩 stanford parser full 2013 06 20 zip st
  • 信息安全期末题库

    大多数应用程序 操作系统和实用程序都用高级程序语言或汇编语言编写 所编写的程序称为源程序 源程序需经过编译 链接 装入三个阶段才能装入主存运行 逻辑地址转换为物理地址的过程称为地址重定位 包括 静态地址重定位 地址转换在进程执行前一次完成
  • matlab基础语法2_matlab的函数_句柄

    函数是模块化 抽象化的实施者 如何查看matlab的内建函数 查看matlab内建的函数 mean m 计算平均数 在命令行窗口输入edit which mean m 会跳出一个 m文件 gt gt edit which mean m fu