目录

前言

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】自定义函数的几种方法相关推荐

  1. Matlab自定义函数的几种方法

    Matlab自定义函数的几种方法_czw-CSDN博客_matlab自定义函数 Matlab 定义函数的几种方法_海底小星星的博客-CSDN博客_matlab定义函数

  2. Matlab自定义函数的五种方法

    n1.函数文件+调用命令文件:需单独定义一个自定义函数的M文件; n2.函数文件+子函数:定义一个具有多个自定义函数的M文件: n3.Inline:无需M文件,直接定义: n4.Syms+subs: ...

  3. matlab自定义函数的使用方法,Matlab自定义函数的几种方法

    1. 函数文件:定义.m文件 function y=myFun(x) y=x^2;以上是myFun.m文件,Matlab命令行使用: clear; clc; y=myFun(2); 2.inline方 ...

  4. Matlab 定义函数的几种方法

    1.函数文件+调用命令文件:需单独定义一个自定义函数的M文件 例:自定义求和函数 需要自定义一个 my_sum.m 的文件来存放函数 function[s]=my_sum(n) s=0; for i= ...

  5. matlab 调用函数本身,怎么在matlab自定义函数中再调用一个自定义函数?

    Matlab自定义函数的七种方法1.函数文件+调用命令文件:需单独定义一个自定义函数的M文件.2.函数文件+子函数:定义一个具有多个自定义函数的M文件.3.Inline:无需M文件,直接定义.4.匿名 ...

  6. 【Elasticsearch】Elasticsearch自定义评分的N种方法

    1.概述 首先参考文章:[Elasticsearch]Elasticsearch 相关度评分 TF&IDF 然后转载文章:实战 | Elasticsearch自定义评分的N种方法 2.三个问题 ...

  7. matlab自定义函数如何报错,MATLAB自定义函数

    MATLAB自定义函数形式 function [a,b,c] = funname(x1,x2,x3) 输入变量 对于输入变量,MATLAB可以识别输入变量的个数,通过nargin来记录当前输入变量个数 ...

  8. 微分方程求解matlab冲激信号,用Matlab求冲激响应的几种方法

    ·实验技术与方法· 用 Matlab 求冲激响应的几种方法 贺富堂,应柏青,张 锋,孙 敏 ( 西安交通大学 电工电子教学实验中心,陕西 西安 710049) 摘 要: 用 Matlab 软件求冲激响 ...

  9. 使用vivado调用自定义IP的两种方法

    使用vivado调用自定义IP的两种方法 方法一:采用Creat Block Design以图形化界面方式,即原理图方式调用自定义IP,例如下图: 方法二:采用代码方式,即类似函数方式调用自定义IP, ...

最新文章

  1. 智能车竞赛技术报告 | 节能信标组组 - 内蒙古大学创业学院 - 骄阳一队
  2. 基于ESP32模块利用检测线圈检测车模停止时间,室内视觉AI裁判系统
  3. 安卓Android科大讯飞语音识别代码使用详解
  4. 那些年,程序员读错的英语
  5. Docker存储和虚拟化存储需求不同
  6. 安装 VMware Tools 实现窗口 自适应 及 主机与虚拟机之间复制粘贴
  7. 表的插入、更新、删除、合并操作_16_ 删除表中所有记录
  8. 使用JDBC进行数据库的事务操作(2)
  9. 基础笔试编程题(jz)
  10. 【Log历练手册】Spring事务管理不能提交异常
  11. thinkphp5 memcached 安装、调用、链接
  12. mysql基本命令大全_Django 学习笔记之 如何设置和操作 mysql 数据库
  13. linux内核disabled,Linux内核关闭IPv6协议的方式
  14. mysql innodb 多核cpu_没有改变,但MySQL InnoDB超载CPU
  15. How to research,22页PPT
  16. 【leetcode学习笔记】leecode是什么?
  17. 在Linux下配置打印机
  18. 《炬丰科技-半导体工艺》 室温下等离子增强的中红外光电探测
  19. 利用AD13设计PCB的问题总结21-30
  20. HTML5期末大作业:爱宠之家网站设计——蓝色版爱宠之家(5页) 致热爱动物网页设计作品 大学生爱宠专题网页设计作业模板 动物静态HTML网页模板下载

热门文章

  1. 高通MDM9628芯片数据参考
  2. JSON对象转java对象 JSON数组转LIST数组
  3. python正则表达式入门
  4. 【POI1999】【BZOJ2936】降 水
  5. 爬坑”无法找到 .NET Core SDK。请检查确保已安装此项且 global.json 中指定的版本(如有)与所安装的版本相匹配“
  6. USB之Cyusb3014芯片原理之三GPIF原理(十一) 2022-03-08
  7. 读书笔记--《软技能-代码之外的生存指南》
  8. 清华物理系与计算机系哪个好,兰州大学现在还有物理系吗?
  9. 移动硬盘如何分区?易我分区大师帮你搞定!
  10. Android 自定义seekbar【仿微信联系人】