【Matlab】自定义函数的几种方法
目录
前言
1.定义多个M文件(函数文件+调用函数文件)
2.定义一个具有多个子函数的M文件(函数文件+子函数)
3.Inline(无需M文件,直接定义)
4. 匿名函数
5.无需M文件,直接定义(Syms+subs)
6.无需M文件,直接定义(字符串+subs)
7.直接通过@符号定义
前言
Matlab自定义函数的几种方法记录。
1.定义多个M文件(函数文件+调用函数文件)
函数文件+调用命令文件:需单独定义一个自定义函数的M文件;
% 调用函数文件:myfile.m
clear;clc;for t=1:10y=mylfg(t);fprintf('M^(1/3)=%6.4f\n',t,y);
end
%自定义函数文件: mylfg.mfunction y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致Y=x^(1/3);
注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。
2.定义一个具有多个子函数的M文件(函数文件+子函数)
函数文件+子函数:定义一个具有多个自定义函数的M文件;
%命令文件:funtry2.m
function []=funtry2()for t=1:10y=lfg2(t)fprintf('M^(1/3)=%6.4f\n');Endfunction y=lfg2(x)Y = x^(1/3);
注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。
3.inline内置函数(无需M文件,直接定义)
inline:无需M文件,直接定义;
inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。
例如:
f=inline('x^2+y','x','y');z=f(2,3)Ans=7
注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。
在Matlab2014版本中,出现了如下提示,可能在以后新版本中会删除inline函数的用法,这个需要注意。
4. 匿名函数
匿名函数,即使用matlab函数句柄操作符@,可以定义指向matlab内置函数和用户自定义函数的函数句柄,函数句柄也可以像函数一样的使用。例如:
代码如下:
>> x=-pi:0.1:pi;
>> fh={@cos,@sin};
>> fhfh = @cos @sin>> plot(fh{2}(x))
>>
结果如下:
5.无需M文件,直接定义(Syms+subs)
用syms定义一个符号表达式,用subs调用。例如
代码如下:
>> syms f x %定义符号
>> f=1/(1+x^2); %定义符号表达式
>> subs(f,'x',1)ans =1/2
注:对于在syms中已经定义过的符号变量,在subs中进行替代时,单引号可以省略。但是,如果在syms后又被重新定义为其他类型,则必须加单引号,否则不可替换。
这种函数定义方法的特点是,可以用符号进行替换
代码如下:
>> syms f x
>> f=1/(1+x^2);
>> subs(f, 'x','y^2')ans =1/(y^4 + 1)
注:该方法的缺点是,由于使用符号运算内核,运算速度会大大降低。
6.无需M文件,直接定义(字符串+subs)
字符串+subs:无需M文件,直接定义。直接定义一个字符串,用subs命令调用。例如:
>> f='1/(1+x^2)' %定义字符串
>> z=subs(f,'x',2)
>> g=subs(f,'x','y^2')
注:优点是,占用内存最少,定义格式方面自由。缺点是,无法对字符进行符号转化。
当所要替代的符号在调用前都已经有了数值定义,则可以直接调用:subs(f)。例如:
>> f='x^2*y';
>> x=2;y=3;
>> subs(f)ans =12
7.直接通过@符号定义
直接通过@符号定义。示例如下:
代码如下:
>> f=@(x,y)(x.^2-sin(y))f = @(x,y)(x.^2-sin(y))>> f(2,3)ans =3.85887999194013
【Matlab】自定义函数的几种方法相关推荐
- Matlab自定义函数的几种方法
Matlab自定义函数的几种方法_czw-CSDN博客_matlab自定义函数 Matlab 定义函数的几种方法_海底小星星的博客-CSDN博客_matlab定义函数
- Matlab自定义函数的五种方法
n1.函数文件+调用命令文件:需单独定义一个自定义函数的M文件; n2.函数文件+子函数:定义一个具有多个自定义函数的M文件: n3.Inline:无需M文件,直接定义: n4.Syms+subs: ...
- matlab自定义函数的使用方法,Matlab自定义函数的几种方法
1. 函数文件:定义.m文件 function y=myFun(x) y=x^2;以上是myFun.m文件,Matlab命令行使用: clear; clc; y=myFun(2); 2.inline方 ...
- Matlab 定义函数的几种方法
1.函数文件+调用命令文件:需单独定义一个自定义函数的M文件 例:自定义求和函数 需要自定义一个 my_sum.m 的文件来存放函数 function[s]=my_sum(n) s=0; for i= ...
- matlab 调用函数本身,怎么在matlab自定义函数中再调用一个自定义函数?
Matlab自定义函数的七种方法1.函数文件+调用命令文件:需单独定义一个自定义函数的M文件.2.函数文件+子函数:定义一个具有多个自定义函数的M文件.3.Inline:无需M文件,直接定义.4.匿名 ...
- 【Elasticsearch】Elasticsearch自定义评分的N种方法
1.概述 首先参考文章:[Elasticsearch]Elasticsearch 相关度评分 TF&IDF 然后转载文章:实战 | Elasticsearch自定义评分的N种方法 2.三个问题 ...
- matlab自定义函数如何报错,MATLAB自定义函数
MATLAB自定义函数形式 function [a,b,c] = funname(x1,x2,x3) 输入变量 对于输入变量,MATLAB可以识别输入变量的个数,通过nargin来记录当前输入变量个数 ...
- 微分方程求解matlab冲激信号,用Matlab求冲激响应的几种方法
·实验技术与方法· 用 Matlab 求冲激响应的几种方法 贺富堂,应柏青,张 锋,孙 敏 ( 西安交通大学 电工电子教学实验中心,陕西 西安 710049) 摘 要: 用 Matlab 软件求冲激响 ...
- 使用vivado调用自定义IP的两种方法
使用vivado调用自定义IP的两种方法 方法一:采用Creat Block Design以图形化界面方式,即原理图方式调用自定义IP,例如下图: 方法二:采用代码方式,即类似函数方式调用自定义IP, ...
最新文章
- 智能车竞赛技术报告 | 节能信标组组 - 内蒙古大学创业学院 - 骄阳一队
- 基于ESP32模块利用检测线圈检测车模停止时间,室内视觉AI裁判系统
- 安卓Android科大讯飞语音识别代码使用详解
- 那些年,程序员读错的英语
- Docker存储和虚拟化存储需求不同
- 安装 VMware Tools 实现窗口 自适应 及 主机与虚拟机之间复制粘贴
- 表的插入、更新、删除、合并操作_16_ 删除表中所有记录
- 使用JDBC进行数据库的事务操作(2)
- 基础笔试编程题(jz)
- 【Log历练手册】Spring事务管理不能提交异常
- thinkphp5 memcached 安装、调用、链接
- mysql基本命令大全_Django 学习笔记之 如何设置和操作 mysql 数据库
- linux内核disabled,Linux内核关闭IPv6协议的方式
- mysql innodb 多核cpu_没有改变,但MySQL InnoDB超载CPU
- How to research,22页PPT
- 【leetcode学习笔记】leecode是什么?
- 在Linux下配置打印机
- 《炬丰科技-半导体工艺》 室温下等离子增强的中红外光电探测
- 利用AD13设计PCB的问题总结21-30
- HTML5期末大作业:爱宠之家网站设计——蓝色版爱宠之家(5页) 致热爱动物网页设计作品 大学生爱宠专题网页设计作业模板 动物静态HTML网页模板下载
热门文章
- 高通MDM9628芯片数据参考
- JSON对象转java对象 JSON数组转LIST数组
- python正则表达式入门
- 【POI1999】【BZOJ2936】降 水
- 爬坑”无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配“
- USB之Cyusb3014芯片原理之三GPIF原理(十一) 2022-03-08
- 读书笔记--《软技能-代码之外的生存指南》
- 清华物理系与计算机系哪个好,兰州大学现在还有物理系吗?
- 移动硬盘如何分区?易我分区大师帮你搞定!
- Android 自定义seekbar【仿微信联系人】