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

相关文章

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

MySQL高级查询之JOIN、子查询、窗口函数实际案例

《MySQL高级查询之JOIN、子查询、窗口函数实际案例》:本文主要介绍MySQL高级查询之JOIN、子查询、窗口函数实际案例的相关资料,JOIN用于多表关联查询,子查询用于数据筛选和过滤,窗口函... 目录前言1. JOIN(连接查询)1.1 内连接(INNER JOIN)1.2 左连接(LEFT JOI

MySQL中FIND_IN_SET函数与INSTR函数用法解析

《MySQL中FIND_IN_SET函数与INSTR函数用法解析》:本文主要介绍MySQL中FIND_IN_SET函数与INSTR函数用法解析,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一... 目录一、功能定义与语法1、FIND_IN_SET函数2、INSTR函数二、本质区别对比三、实际场景案例分

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

C/C++错误信息处理的常见方法及函数

《C/C++错误信息处理的常见方法及函数》C/C++是两种广泛使用的编程语言,特别是在系统编程、嵌入式开发以及高性能计算领域,:本文主要介绍C/C++错误信息处理的常见方法及函数,文中通过代码介绍... 目录前言1. errno 和 perror()示例:2. strerror()示例:3. perror(

Kotlin 作用域函数apply、let、run、with、also使用指南

《Kotlin作用域函数apply、let、run、with、also使用指南》在Kotlin开发中,作用域函数(ScopeFunctions)是一组能让代码更简洁、更函数式的高阶函数,本文将... 目录一、引言:为什么需要作用域函数?二、作用域函China编程数详解1. apply:对象配置的 “流式构建器”最

使用Sentinel自定义返回和实现区分来源方式

《使用Sentinel自定义返回和实现区分来源方式》:本文主要介绍使用Sentinel自定义返回和实现区分来源方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Sentinel自定义返回和实现区分来源1. 自定义错误返回2. 实现区分来源总结Sentinel自定