欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > MATLAB基础:5脚本与函数

MATLAB基础:5脚本与函数

2024/12/25 13:27:51 来源:https://blog.csdn.net/m0_75029367/article/details/142210271  浏览:    关键词:MATLAB基础:5脚本与函数

脚本与函数

MATLAB命令的两种执行方式:

  • 交互式命令执行方式
  • 程序执行

要充分利用MATLAB数据结构的特点(矩阵运算、矢量化编程),充分利用MATLAB自带的函数

M文件:

  • 是一个文本文件,拓展名为.m
  • 可以用任何编辑程序来建立和编辑,默认matlab
  • M文件就是将处理问题的各种命令融合到一个文件中

启动MATLAB编辑器的三种方法:

  1. “主页”选项中的新建脚本/双击已有文件/打开命令按钮
  2. 命令行输入edit(既可以新建,也可以打开已有文件)
  3. 命令历史窗口,选中一些命令(按住ctrl可以同时选择多个),从右键快捷菜单中选择“创建脚本”命令,并在编辑区加入所选命令

M文件分类:

  1. 函数文件
  2. 脚本文件
区别函数文件脚本文件
输入参数没有
输出参数不返回返回
变量操作文件所有命令执行结果完全返回到工作空间执行完毕局部变量被清除
运行可以直接运行以函数调方式调用

举例:
建立一个M文件实现a和b的值的互换,2种方式
脚本文件:

a=input('请输入a的值:');
b=input('请输入b的值:');
c=a;
a=b;
b=c;
disp(['a=',num2str(a),'b=',num2str(b)]);

重点:input()函数和disp()函数


函数文件:
function [a,b]=swap(a,b)
c=a;
a=b;
b=c;
return;
end

重点:function和return

  1. 函数文件必须以function开头,以end结尾
  2. 函数文件()填输入参数,[]是输出参数
  3. 调用函数:[a,b]=swap(a,b)返回a和b的值
注释
  1. 单行注释:%
  2. 多行注释:%{ }%
函数文件的可调性
  • 调用函数时,MATLAB用两个永久变量nargin和nargout记录函数的输入参数和输出参数个数
  • 只要在函数文件包含这两个变量,就可以知道函数被调用时,输入参数和输出参数个数
    例子:
function fout=charray(a,b,c)
if nargin==1
fout=a;
elseif nargin==2
fout=[a,b];
elseif nargin==3
fout=[a,b,c];
end
return;
全局变量和局部变量
  • 函数文件中的变量是局部的,即在一个函数文件中定义的变量只能在该函数文件中使用,不能在别的函数使用
  • 如果要在若干个函数之间共享变量,可以将变量定义为全局变量
  • 全局变量用global命令定义,如:global a b
    例子:
    先建立函数文件wadd.m
    该函数将输入的参数加权相加:
function f=wadd(a,b)
global m n
f=m*a+n*b;
return;
end

命令行输入:

global m n
m=2;
n=3;
wadd(1,2)

函数的递归调用:

函数可以调用自己、调用他人
利用函数的递归,求n的阶乘:

function f=factorial(n)
if n<=0 
f=1;
else
f=n*factorial(n-1);
end

特殊形式函数:

1. 子函数
  • 可以在M文件同时定义多个函数
  • M文件出现的第一个函数称为主函数,其他函数称为子函数
  • 子函数只能由同一M文件调用,不能被其他文件调用
  • 函数名与主函数相同
    例如:
function d=func(a,b,c)
d=subfunc(a,b)+c;
end
function f=subfunc(a,b)
f=a*b;
end
2. 内联函数
  • 以字符串形式存在的函数表达式可以通过inline函数转换为内联函数
  • 例如:a=“x+y”,可以通过inline(a)转换为内联函数f(x,y)=x+y
a='(x+y)^2';
b=inline(a);
b(2,3)
3. 匿名函数
  • 匿名函数基本格式:函数名=@(x,y)x+y
  • 输入参数用逗号隔开
程序优化和调试

程序调试方法:

  • 程序错误有两类:语法错误和运行错误
  • 语法错误包括词法或文法错误,例如函数名拼写错、表达式写错等
  • 程序运行错误是指运行错误,例如变量未定义、函数调用错误等,称为程序逻辑错误
  • 利用调试函数
  • 利用调试工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com