MATLAB(二)结构化程式与自定义函数

2024-02-20 09:50

本文主要是介绍MATLAB(二)结构化程式与自定义函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 前言
  • 一、脚本编辑器
    • 常用功能
  • 二、脚本流
    • 1. 控制流
    • 2.关系(逻辑)操作符
      • if elseif else
      • switch
      • while
      • Exercise练习
    • 3. 预分配空间给变量
      • Exercise练习
      • break
    • 4. 技巧
    • 5. 脚本与函数
      • MATLAB内置函数的内容
      • 用户定义函数
      • 具有多个输入和输出的函数
      • 函数的默认变量
      • 函数处理


前言

此篇文章是我在B站学习时所做的笔记,语句部分为亲自动手演示过的,方便复习用。此篇文章仅供学习参考。


提示:以下是本篇文章正文内容,下面案例可供参考

一、脚本编辑器

新建脚本文件、两种运行方式
在这里插入图片描述
在命名上,不能以数字开头字母大小写有区别在这里插入图片描述
在这里插入图片描述

常用功能

断点、分节、注释、运行
在这里插入图片描述
智能缩进
在这里插入图片描述

二、脚本流

通常脚本从第一行运行到最后一行
在这里插入图片描述
应用结构化编程技术(子程序、循环、条件等)使程序看起来整洁

1. 控制流

if, elseif, else如果condition为真,执行语句
for执行指定次数的语句
switch, case, otherwise执行几组语句中的一个
try, catch执行语句并捕获结果错误
while当条件为真时重复执行语句
break终止for或while循环的执行
continue将控制传递给for或while循环的下一次迭代
end终止代码块,或指示最后一个数组索引
pause暂时停止执行
return将控制权返回给调用函数

2.关系(逻辑)操作符

在这里插入图片描述
rem(a,2):返回a除以2后的余数
disp:显示变量的值

if elseif else

在这里插入图片描述

switch

在这里插入图片描述

input_num=1;
switch input_numcase -1disp('negative 1');case 0disp('zero');case 1disp('positive 1');otherwisedisp('other value');
end

在这里插入图片描述

while

在这里插入图片描述
1e100=1x10^100
prod(1:n)=n!

n = 1;
while prod(1:n) < 1e100n = n + 1;
end

在命令行输入n,点击enter输出得70,表示n=70是小于1e100的最大的阶乘数

Exercise练习

使用while循环来计算序列的总和1+2+3+…+999

sum = 0;
n=0;
while n < 1000sum = n + sum;n=n+1;
end%命令行窗口:>> Untitled
>> sumsum =499500

或者直接在end;后面加个disp(sum),就不用另外输入了。
在这里插入图片描述

3. 预分配空间给变量

在前面的例子中,我们没有预先分配空间给vector a,而是让MATLAB在每次迭代时调整它的大小。

哪种方法更快?
B中有预分配矩阵(A=zeros(2000,2000);),就不用总是在计算大小
在这里插入图片描述
在这里插入图片描述

Exercise练习

使用结构化编程:

  1. 把矩阵A中的元素复制到矩阵B中
  2. 如果它们在矩阵A中的对应项是负的,改变矩阵B中的值
    在这里插入图片描述

break

终止for或while循环的执行
用于不能保证收敛的迭代
在这里插入图片描述

4. 技巧

  • Clear all以删除以前的变量。
  • close all以关闭所有的数字。
  • 在命令末尾使用分号来禁止不需要的输出。
  • 使用省略号…让脚本更具可读性:
>> A=[1 2 3 4 5 6;...6 5 4 3 2 1]
%等价于
>> A=[1 2 3 4 5 6;6 5 4 3 2 1]
  • 按ctrl+C在结论之前终止脚本
 ticfor n=1 : 1000000for ii = 1:2000for jj = 1:2000A( ii,jj) = ii + jj;endendendtoc

在这里插入图片描述

5. 脚本与函数

脚本和函数都是包含MATLAB命令的。
m文件函数是在需要执行例程时编写的。

脚本功能
没有输入参数有输入参数
没有输出参数有输出参数
对全局工作区中的数据进行操作对本地工作区中的数据进行操作

MATLAB内置函数的内容

蓝色代表关键字
在这里插入图片描述

用户定义函数

写一个函数,计算给定初始位移xo,初始速度vo,下落时间t的自由落体位移:
在这里插入图片描述

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 + 1/2*9.8*t.*t;

在这里插入图片描述

具有多个输入和输出的函数

质点的加速度和作用在它上的力是:
在这里插入图片描述

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)

在这里插入图片描述

函数的默认变量

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;%命令行窗口
>> pillar(1,1)ans =0>> pillar(2,1)ans =2.3562

函数处理

在这里插入图片描述

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

如若侵权,请及时与我联系。
此篇文章仅供学习参考,禁止转载!

这篇关于MATLAB(二)结构化程式与自定义函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/727825

相关文章

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

聊聊springboot中如何自定义消息转换器

《聊聊springboot中如何自定义消息转换器》SpringBoot通过HttpMessageConverter处理HTTP数据转换,支持多种媒体类型,接下来通过本文给大家介绍springboot中... 目录核心接口springboot默认提供的转换器如何自定义消息转换器Spring Boot 中的消息

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

python中update()函数的用法和一些例子

《python中update()函数的用法和一些例子》update()方法是字典对象的方法,用于将一个字典中的键值对更新到另一个字典中,:本文主要介绍python中update()函数的用法和一些... 目录前言用法注意事项示例示例 1: 使用另一个字典来更新示例 2: 使用可迭代对象来更新示例 3: 使用

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda