百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

Matlab基础入门手册(第五章:脚本/函数)

liebian365 2025-03-24 17:49 2 浏览 0 评论

第五章 脚本和函数

1.44 循环和条件语句

1.循环语句和条件语句的用法

2.说明

循环语句:for,while

条件语句:if,switch

3.实例演示

%1_44
for x=1:5 %简单for程序实例
y=x+5
end
[1:5]+5 %矩阵运算方式

if 1<2 %简单if程序实例
disp('true')
else
disp('false')
end


1.45 函数文件

1.函数文件的创建和应用

2.认识函数

function

3.说明

函数定义语法示例,function y = myfun(x)(也可以end结尾)

在命令行中,通过使用函数名并输入参数实现调用该函数

函数文件类型包括局部函数、嵌套函数、私有函数和匿名函数

一个函数文件中可以包含用于多个函数的代码

函数工作区与基础工作区是分开的

因此,命令行和函数之间不能相互访问对方的变量

Tips:与脚本文件同为.m文件,但是文件类型不同,图标也不同

4.实例演示

%1_45
%函数定义语法:function关键字应放在函数文件中第一个可运行的程序行
function s=mianji(d) %主函数的函数名必须与函数名相同
r=banjing(d) %函数内部运算产生的变量与基础工作区不相通,因此,函数和基础工作区通过传递输入/输出参数的方式交换数据
s=pi*r*r; %函数体:即计算内容
end

%% 函数文件内创建局部函数(R2016b以上支持)
function r=banjing(d) %子函数,多个函数须有1个主函数
r=d/2;
end


1.46 函数句柄

1.函数句柄及匿名函数的用法

2.说明

2.1函数句柄

函数句柄是一种存储函数关联项的数据类型

通过在函数名称前添加一个 @ 符号为函数创建句柄

2.2匿名函数(同样用@,用法与函数句柄类似)

2.3功能函数

可以使用函数句柄作为功能函数的输入参数(可理解为功能函数用来处理函数句柄这类数据类型)

典型的功能函数包括 fplot(对一个函数绘图)和fzero(求一个函数零点)等

3.实例演示

%1_46
fx=@sin %创建句柄并赋值给变量
fplot(fx) %函数句柄用法:作为参数传递给功能参数进行绘图
%函数句柄作用:提供了一种方式,将整个函数作为参数传递给另一个函数进行处理
% fplot(sin) %不用函数句柄的方式,报错
mianji=@(r)pi*r*r %匿名函数用法:@(自变量)函数表达式,再赋值给函数名称(句柄名称)
%匿名函数作用:相较于函数文件,不必单独创建函数文件,节约存储和维护成本,适用于具有单个表达式的函数
mianji(1)
fplot(mianji) %匿名函数作为参数进行绘图


1.47 输入参数数量

1.输入参数的数量和可变数量输入

2.认识函数

输入nargin

可变输入varargin(输出改为out)

3.实例演示

function y=fx1_47(varargin) %若输入参数数量不固定,则不需单个设置参数变量,而用varargin
y=nargin; %Matlab内置函数nargin
end
%例如,cube(a)求立方体体积/cube(a,b,c)求长方体体积,可通过if语句判断输入参数数量,然后进行相应运算。


1.48 变量名称

1.检查变量名称是否存在或是否与关键字冲突

2.认识函数

判断关键字iskeyword

判断存在exist

3.说明

有效的变量名称

有效的变量名称以字母开头,后跟字母、数字或下划线

Matlab变量名称对字母大小写是区分的,A和a是不相同的变量

不能使用与Matlab关键字冲突的变量名称,例如if、end等

尽量避免使用与函数名相同的变量名,如clear、sin等

如果无意中创建了冲突的变量,使用clear清除

在Matlab中使用函数或变量时,可能会提示以下错误消息:

未定义的函数或变量“a”

原因可能是下列之一

%没有定义改变量,或者已经清除掉了

%该函数的名称拼写错误

%包含函数的文件名和函数名是不一样的

%该函数的搜索路径已被更改

%该函数所属的工具箱未安装

%该功能是您没有许可证的工具箱的一部分

%其他情况(具体分析)

4.实例演示

%1_48
iskeyword('a') %判断字符’a’是否为关键字
iskeyword('if')
iskeyword('clc')
% if=1 %关键字作为变量,报错
clc=1 %内置函数名作为变量,功能被覆盖
clc
clear %清除变量后,clc恢复
clc
exist('a') %判断是否存在变量’a’
a=1
exist('a')

1.49 实时脚本

1.简单介绍实时脚本的用法

2.实时脚本

实时脚本是一个交互式文档,它在一个称为实时编辑器的环境中将Matlab代码与嵌入式输出、格式化文本、方程和图像组合到一起

实时脚本使用实时脚本文件格式存储在扩展名为.mlx的文件中

Matlab R2016a及以上版本支持实时脚本

2.1在实时脚本中插入文本

2.2在实时脚本中插入方程

2.3在实时脚本中编辑图窗

2.4以实时脚本方式打开现有脚本

2.5将实时脚本另存为脚本,或者导出为PDF

3.实例演示

%1_49
%该程序在实时脚本中运行
三次函数的用法 %实时脚本中的文字
创建三次函数
%实时脚本中的方程和公式
f=@(x)x.^3+x.^2+x+1
f(1)
%xxxx
三次函数的图像
fplot(f)
title('三次函数')


1.50 保存和载入

1.保存和载入

1.1 保存工作区的变量和数值,重启Matlab后再载入数据

1.2 把变量创建和保存过程用日志文件记录下来

2.认识函数

保存save

载入load

创建日志diary

3.说明

工作区变量是临时存储,退出Matlab会丢失

可以把当前工作区数据保存到一个.mat的文件中,方便存储传输

使用日志文件可以记录Matlab命令窗口的所有会话内容

日志文件可以使用文本方式打开和编辑

4.实例演示

%1_50
diary fx1_50 %创建日志文件
a=1
b=2
save fx1_50 %存储该文件
diary off %关闭日志文件
%通过在命令行窗口调用load函数,可以加载日志文件数据

1.51 预设和界面调整

1.简单介绍预设和界面调整的用法

2.说明

2.1调整行间距

2.2分页面输出

2.3长语句换行输入

2.4停止运行

停止正在运行的程序,使用Ctrl+C或Ctrl+Break

在Mac系统上,使用Command+。

2.5预设

主页-环境-预设-Matlab

3.实例演示

%1_51
%freexyn
a=1
format compact %format函数设置数值显示格式,compact命令取消结果在命令行窗口中显示的空行
format loose %恢复结果显示的空行
rand(1,100)
% more on %分页输出便于观察,回车按行浏览,空格按页,Q退出
rand(1,100)
% more off

a=[1.23456789;... %长语句换行输入
2.23456789]
b=1

1.52 绘图

1.绘制sin(x)在[0 2*pi]的图像

2.认识函数或命令

作图plot

x轴标题xlabel

y轴标题ylabel

图像标题title

3.实例演示

%1_52
x=[1 2]
y=[1 2]
plot(x,y,'*') %线型使用'*’
x=0:pi/100:2*pi;
y=sin(x)
plot(x,y)
xlabel('xxxx') %x轴标题
ylabel('yyyy') %y轴标题
title('sin(x)') %图像标题

(第五章结束,后接第六章)

相关推荐

Markdown 常用语法总结(markdown示例)

头条不能以代码模式查看,所以分两部分来写:效果、语法。效果和语法部分一一对应,最好自己把语法复制下来保存为.md用md编辑器打开。先看效果:Markdown常用语法注:查阅时在视图中切换为源代码模式...

CPU眼里的:字符串 vs 数组(字符数组与字符串区别)

“它们十分相似,但又非常不同”01提出问题字符串和字符数组,在内存分布上,跟普通数组(例如:int类型的数组)有很高的相似性。但使用字符串的危险系数,却远远高于普通数组。是什么细微的差异导致了二者在使...

rsync命令详解(rsync命令详解 -X)

1.rsync简介rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具RemoteSync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。2.rsync特性rsy...

Linux操作系统安全配置(linux系统的安全配置有哪些方面)

一、服务相关命令systemctlenable服务名#开机自启动systemctldisable服务名#禁用开机自启动systemctlstop服务名#停止服务systemctls...

一篇文章学会数据备份利器rsync(备份数据语句)

阿铭linux近16年的IT从业经验,6年+鹅厂运维经验,6年+创业公司经验,熟悉大厂运维体系,有从零搭建运维体系的实战经验。关注我,学习主流运维技能,让你比别人提升更快,涨薪更多!作为一个系统管理员...

成功尝试在NetBSD9.0中安装Mate Desktop环境记录

NETBSD系统桌面安裝系統最新的NetBSD9.0:http://cdn.netbsd.org/pub/NetBSD/NetBSD-9.0/images/https://mirrors.tuna.t...

使用OpenLDAP集中式认证(openresty集群)

1OpenLDAP入门1.1什么是LDAP?1.2我不理解。什么是目录?1.3信息结构是什么样?1.4所以……它可以用来做什么?2OpenLDAP服务器配置2.1.1OLC样式的LDIF...

在 Ubuntu 22.04 上安装和配置 VNC 远程桌面

环境Ubuntu22.04.2LTSx86_64Step-1安装桌面环境Ubuntu默认使用GNOME桌面环境,但也可以安装其他桌面环境,如Xfce、KDE等。这个可以根据个人喜好选...

hdfs集群的扩容和缩容(hdfs容量)

1、背景当我们的hadoop集群运行了一段时间之后,原有的数据节点的容量已经不能满足我们的存储了,这个时候就需要往集群中增加新的数据节点。此时我们就需要动态的对hdfs集群进行扩容操作(节点服役)。2...

Zabbix入门操作指南(zabbix怎么使用)

上篇:安装与配置一.概述在开始之前,一些概念和定义需要我们提前了解一下(以下内容摘自官方网站)。1.1几个概念架构Zabbix由几个主要的功能组件组成,其职责如下所示。ServerZabbixs...

从0开始学习KVM-KVM学习笔记(6)- CentOS远程桌面连接

CentOS远程桌面连接CentOS系统上配置远程桌面连接有多种方法,其中最常用的是通过xrdp或vnc来实现。安装xrdr实现CentOS远程桌面安装xrdp安装epel库sudoyu...

systemd service之:服务配置文件编写(2)

接下来会通过示例来描述不同ServiceType值的应用场景。在此之前,强烈建议先阅读前后台进程父子关系和daemon类进程来搞懂进程之间的关系和Daemon类进程的特性。systemdservi...

Linux项目开发,你必须了解Systemd服务!

1.Systemd简介Systemd是什么,以前linux系统启动init机制,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身...

Oracle 数据库日常巡检之检查数据库安全性

在本节主要检查Oracle数据库的安全性,包含:检查系统安全信息,如系统账户,系统防火墙策略,密码策略等。1.检查系统安全信息系统安全日志文件的目录在/var/log下,主要检查登录成功或失败的用户日...

「分享」非常全面的CentOS7系统安全检测和加固脚本

CentOS7系统检测和加固脚本脚本来源:https://github.com/xiaoyunjie/Shell_Script主要是为了Linux系统的安全,通过脚本对Linux系统进行一键检测和一键...

取消回复欢迎 发表评论: