第二章:Matlab 编程基础

news/2025/2/13 21:41:35/

第二章:Matlab 编程基础

2.1 变量与赋值

2.1.1 变量的命名规则
  • 变量名必须以字母开头,可以包含字母、数字和下划线 (_)。
  • 变量名区分大小写,例如 myVarmyvar 是不同的变量。
  • 变量名不能与 MATLAB 的关键字相同,例如 if, for, while 等。
  • 变量名应尽量简洁、易懂,并能反映变量的含义。

代码示例:

matlab">% 合法的变量名
myVariable = 10;
result_sum = 20;
data_2023 = [1, 2, 3];% 非法的变量名
% 1variable = 10;  % 错误:以数字开头
% if = 5;         % 错误:使用关键字
2.1.2 变量的作用域
  • 局部变量: 在函数或脚本中定义的变量,只能在定义它的函数或脚本中使用。
  • 全局变量: 使用 global 关键字声明的变量,可以在不同的函数或脚本中共享。

代码示例:

matlab">% 局部变量示例
function myFunction()x = 10;  % 局部变量disp(x);
endmyFunction();  % 输出: 10
disp(x);       % 错误:x 未定义% 全局变量示例
global y;
y = 20;function myFunction2()global y;disp(y);
endmyFunction2();  % 输出: 20
2.1.3 常用的特殊变量
  • pi: 圆周率 π 的值。
  • eps: 浮点数的精度,表示 1.0 与下一个可表示的浮点数之间的差值。
  • inf: 无穷大。
  • NaN: 非数字 (Not a Number),表示无效的数值运算结果。

代码示例:

matlab">disp(pi);   % 输出: 3.1416
disp(eps);  % 输出: 2.2204e-16
disp(inf);  % 输出: Inf
disp(NaN);  % 输出: NaN

2.2 流程控制语句

2.2.1 if-else 条件语句
  • 单分支: 如果条件为真,则执行代码块。
  • 双分支: 如果条件为真,则执行第一个代码块;否则,执行第二个代码块。
  • 多分支: 根据不同的条件,执行不同的代码块。

代码示例:

matlab">% 单分支
x = 10;
if x > 5disp('x 大于 5');
end% 双分支
y = 3;
if y > 5disp('y 大于 5');
elsedisp('y 小于等于 5');
end% 多分支
z = 7;
if z > 10disp('z 大于 10');
elseif z > 5disp('z 大于 5 且小于等于 10');
elsedisp('z 小于等于 5');
end
2.2.2 for 循环语句
  • 循环结构: 重复执行代码块指定的次数。
  • 循环变量: 用于控制循环次数的变量。

代码示例:

matlab">% 循环 5 次
for i = 1:5disp(['当前循环次数: ', num2str(i)]);
end% 遍历数组
arr = [10, 20, 30, 40, 50];
for j = 1:length(arr)disp(['数组元素: ', num2str(arr(j))]);
end
2.2.3 while 循环语句
  • 循环条件: 只要条件为真,就重复执行代码块。

代码示例:

matlab">% 循环直到 x 大于 10
x = 1;
while x <= 10disp(['当前 x 值: ', num2str(x)]);x = x + 1;
end
2.2.4 break 和 continue 语句
  • break: 立即终止循环。
  • continue: 跳过当前循环,继续执行下一次循环。

代码示例:

matlab">% 使用 break 终止循环
for i = 1:10if i == 5break;enddisp(i);
end% 使用 continue 跳过循环
for j = 1:10if mod(j, 2) == 0continue;enddisp(j);
end

2.3 函数编写

2.3.1 函数的定义与调用
  • 函数定义: 使用 function 关键字定义函数,并指定函数名、输入参数和输出参数。
  • 函数调用: 使用函数名和输入参数调用函数。
  • 注意函数调用要在同一路径下新建立函数文件
    新建函数文件

代码示例:

matlab">% 定义函数
function result = mySum(a, b)result = a + b;
end% 调用函数
sum_result = mySum(3, 5);
disp(sum_result);  % 输出: 8
2.3.2 函数的输入输出参数传递
  • 输入参数: 传递给函数的数据。
  • 输出参数: 函数返回的数据。

代码示例:

matlab">% 定义函数
function [max_value, min_value] = findMaxMin(arr)max_value = max(arr);min_value = min(arr);
end% 调用函数
arr = [10, 5, 20, 15];
[max_val, min_val] = findMaxMin(arr);
disp(['最大值: ', num2str(max_val)]);  % 输出: 最大值: 20
disp(['最小值: ', num2str(min_val)]);  % 输出: 最小值: 5

一个是函数文件,一个是运行文件
在这里插入图片描述
运行下面文件即可:
在这里插入图片描述

2.3.3 局部变量与全局变量
  • 局部变量: 在函数内部定义的变量,只能在函数内部使用。
  • 全局变量: 使用 global 关键字声明的变量,可以在不同的函数中共享。

代码示例:

matlab">% 局部变量
function myFunction()x = 10;  % 局部变量disp(x);
endmyFunction();  % 输出: 10
disp(x);       % 错误:x 未定义% 全局变量
global y;
y = 20;function myFunction2()global y;disp(y);
endmyFunction2();  % 输出: 20
2.3.4 匿名函数的使用
  • 匿名函数: 无需定义函数文件,可以直接在代码中定义的函数。

代码示例:

matlab">% 定义匿名函数
mySquare = @(x) x^2;% 调用匿名函数
result = mySquare(5);
disp(result);  % 输出: 25

在这里插入图片描述

总结:

本章介绍了 MATLAB 编程的基础知识,包括变量与赋值、流程控制语句和函数编写。通过代码示例,您可以更好地理解这些概念并将其应用到实际问题中。在接下来的章节中,我们将学习更高级的 MATLAB 功能,例如数据可视化、文件操作、符号计算等。

持续更新中!如果对您有帮助请点个赞!


http://www.ppmy.cn/news/1571804.html

相关文章

【CMAEL多智能体框架】第一节 环境搭建及简单应用(构建一个鲜花选购智能体)

第一节 环境搭建 文章目录 第一节 环境搭建前言一、安装二、获取API1. 使用熟悉的API代理平台2.设置不使用明文存放API 三 、具体应用进阶任务 总结 前言 CAMEL Multi-Agent是一个开源的、灵活的框架&#xff0c;它提供了一套完整的工具和库&#xff0c;用于构建和模拟多智能体…

C# 两种方案实现调用 DeepSeek API

目录 序 开发运行环境 访问API的一个通用方法 原生官网实现 申请 API key 调用实现 调用示例 腾讯云知识引擎原子调用 申请 API key 调用示例 小结 序 DeepSeek&#xff08;深度求索&#xff09; 最近可谓火爆的一塌糊涂&#xff0c;具体的介绍这里不再赘述&#x…

Java常用设计模式面试题总结(内容详细,简单易懂)

设计模式的分类 创建型模式&#xff1a;通过隐藏对象创建的细节&#xff0c;避免直接使用 new 关键字实例化对象&#xff0c;从而使程序在判断和创建对象时更具灵活性。常见的模式包括&#xff1a; 工厂模式抽象工厂模式单例模式建造者模式原型模式 结构型模式&#xff1a;通…

性格测评小程序01需求分析

目录 1 MBTI 性格测评工具2 MBTI 的四个核心维度3 测评搭建的思路3.1 【外向 vs 内向&#xff08;E/I&#xff09;】&#xff08;10 题&#xff0c;每题得分范围&#xff1a;0.5&#xff5e;3.2&#xff0c;较高数值表示偏向外向&#xff09;3.2 【感觉 vs 直觉&#xff08;S/N…

《图解设计模式》笔记(八)管理状态

十七、Observer模式&#xff1a;发送状态变化通知 Observer &#xff1a;“进行观察的人”&#xff0c;也就是“观察者”。 在 Observer模式中&#xff0c;当观察对象的状态发生变化时&#xff0c;会通知给观察者。 适用场景&#xff1a;根据对象状态进行相应处理. 示例程序…

Qt plugin 插件 如何内嵌json作为metaData

环境msvc2017 Qt5.12.12 本文使用的插件&#xff0c;搭建过程在此&#xff1a; https://blog.csdn.net/weixin_45930811/article/details/143619681?spm1001.2014.3001.5502 1.在插件实例类的同级目录下&#xff0c;新建json 2.json内容&#xff1a; {"name": &…

嵌入式C语言:大小端详解

目录 一、大小端的概念 1.1. 大端序&#xff08;Big-endian&#xff09; 1.2. 小端序&#xff08;Little-endian&#xff09; 二、大小端与硬件体系的关系 2.1. 大小端与处理器架构 2.2. 大小端与网络协议 2.3. 大小端对硬件设计的影响 三、判断系统的大小端方式 3.1.…

Visual Studio踩过的坑

统计Unity项目代码行数 编辑-查找和替换-在文件中查找 查找内容输入 b*[^:b#/].*$ 勾选“使用正则表达式” 文件类型留空 也有网友做了指定&#xff0c;供参考 !*\bin\*;!*\obj\*;!*\.*\*!*.meta;!*.prefab;!*.unity 打开Unity的项目 注意&#xff1a;只是看&#xff0…