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 itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

CSS自定义浏览器滚动条样式完整代码

《CSS自定义浏览器滚动条样式完整代码》:本文主要介绍了如何使用CSS自定义浏览器滚动条的样式,包括隐藏滚动条的角落、设置滚动条的基本样式、轨道样式和滑块样式,并提供了完整的CSS代码示例,通过这些技巧,你可以为你的网站添加个性化的滚动条样式,从而提升用户体验,详细内容请阅读本文,希望能对你有所帮助...

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

SpringBoot 自定义消息转换器使用详解

《SpringBoot自定义消息转换器使用详解》本文详细介绍了SpringBoot消息转换器的知识,并通过案例操作演示了如何进行自定义消息转换器的定制开发和使用,感兴趣的朋友一起看看吧... 目录一、前言二、SpringBoot 内容协商介绍2.1 什么是内容协商2.2 内容协商机制深入理解2.2.1 内容

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>