MATLAB学习笔记(三):MATLAB基础知识

MATLAB基础知识

MATLAB(Matrix Laboratory)是一款以矩阵运算为核心的高级编程语言和交互式环境,广泛应用于数值计算、数据分析、算法开发及可视化等领域。以下是其基础知识总结:
在这里插入图片描述


1. 基本数据类型
• 数值类型:double(默认双精度浮点数)、int(整数)、single(单精度)、logical(布尔值)等。

• 字符与字符串:

• 字符:用单引号 'a' 表示,ASCII码对应。

• 字符串:str = 'Hello',支持字符串数组(MATLAB R2016b+)和 string 类型。

• 结构体:用 struct 创建,如 s = struct('name', 'Alice', 'age', 25)

• 单元格数组:用花括号 {} 存储不同类型数据,如 C = {'a', 1, [2,3]}


2. 变量与赋值
• 无需声明类型,直接赋值:x = 5;A = [1,2; 3,4];(矩阵)。

• 变量名区分大小写,避免使用保留字(如 pi, inf)。


3. 运算符
• 算术运算符:+, -, *, /, ^(矩阵乘法用 *,元素级用 .*)。

• 关系运算符:==, ~=, >, <, >=, <=

• 逻辑运算符:&&(短路与)、||(短路或)、~(非),以及按元素运算的 &, |, ~


在这里插入图片描述

4. 矩阵操作
• 创建矩阵:

A = [1 2 3; 4 5 6; 7 8 9];  % 3x3矩阵
B = zeros(2,3);            % 2x3零矩阵
C = 1:0.5:3;               % 行向量,步长0.5
D = rand(2,2);             % 2x2随机矩阵

• 索引与切片:

A(2,3)      % 访问第2行第3列元素
A(1,:)      % 取第1行所有列
A(:,end)    % 取最后一列

• 矩阵运算:

A'         % 转置
inv(A)     % 逆矩阵(需方阵且非奇异)
det(A)     % 行列式
eig(A)     % 特征值与特征向量

5. 流程控制
• 循环:

for i = 1:5
    disp(i);
end

i = 1;
while i <= 5
    disp(i);
    i = i + 1;
end

• 条件判断:

if x > 0
    disp('Positive');
elseif x == 0
    disp('Zero');
else
    disp('Negative');
end

6. 函数
• 脚本文件(.m 文件):包含一系列命令。

• 函数文件:

function y = myfunc(x)
    y = x^2 + 2*x + 1;
end

• 匿名函数:

f = @(x) x^2;

7. 输入输出
• 输出:disp('Hello')fprintf('Value: %.2f\n', x)

• 输入:x = input('Enter a number: ');

• 文件操作:

save('data.mat');    % 保存变量到文件
load('data.mat');    % 加载变量

8. 绘图
• 基本绘图:

x = 0:0.1:2*pi;
y = sin(x);
plot(x, y);
title('Sine Wave');
xlabel('x');
ylabel('sin(x)');

• 子图与多图:

subplot(2,1,1); plot(x, y);   % 2行1列,第一个子图
subplot(2,1,2); plot(x, cos(x)); 

9. 向量化操作
• 避免显式循环,利用矩阵运算提升效率:

% 低效写法
for i = 1:100
    y(i) = x(i)^2;
end

% 高效写法
y = x.^2;

在这里插入图片描述

10. 常用函数
• 数学函数:sin, cos, exp, log, sqrt

• 统计函数:mean, sum, std, max

• 矩阵函数:size, length, reshape, find


11. 帮助与调试
• 获取帮助:help('function_name')doc function_name

• 调试工具:设置断点(dbstop),逐步执行(dbstep)。

在这里插入图片描述


示例:快速入门

% 创建矩阵并计算
A = [1 2; 3 4];
B = [5 6; 7 8];
C = A * B;       % 矩阵乘法

% 绘制图形
x = linspace(0, 2*pi, 100);
plot(x, sin(x), 'r--', x, cos(x), 'b:');
legend('sin(x)', 'cos(x)');

掌握这些基础知识后,可进一步学习Simulink、工具箱(如机器学习、图像处理)及面向对象编程等高级功能。

MATLAB数据类型

MATLAB 提供了多种数据类型,以便用户能够有效地处理不同类型的数据。以下是 MATLAB 中常用的一些主要数据类型及其简要介绍:
在这里插入图片描述

1. 数值型(Numeric Types)

  • 双精度浮点数(Double):这是 MATLAB 中默认的数值类型,占用 64 位(8 字节),可以表示非常大或非常小的数值。

  • 单精度浮点数(Single):占用 32 位(4 字节),适用于对内存使用敏感的应用场景。

  • 整型(Integers):包括有符号和无符号的 8 位、16 位、32 位和 64 位整数(如 int8, uint8, int16, uint16 等)。它们用于需要精确整数运算的情况。

2. 字符串(Strings)

  • 字符数组(Character Arrays):基本的字符串类型,以 ASCII 编码存储文本信息。例如,'Hello, world!'

  • 字符串数组(String Arrays):从 MATLAB R2016b 开始引入,提供了更强大的文本处理功能,并支持 Unicode 字符集。例如,"Hello, world!"

3. 逻辑型(Logical)

  • 布尔值(Boolean Values):逻辑数据类型只有两个可能的值:truefalse,分别对应于 1 和 0。常用于条件语句和逻辑操作中。

4. 结构体(Structures)

  • 结构体允许你将不同类型的数据组织在一起作为一个整体。每个结构体成员都有自己的名字,并且可以是任何数据类型。这对于管理复杂的数据集特别有用。

5. 单元格数组(Cell Arrays)

  • 单元格数组是一种可以存储不同类型数据的数组。每个单元格可以包含任意类型的 MATLAB 数组,包括其他单元格数组。这使得它非常适合存储异构数据。

6. 表格(Tables)

  • 表格是一种二维数据结构,可用于存储列向数据集,其中每列可以有不同的数据类型。表格非常适合处理电子表格样式的文件或数据库查询结果。

7. 时间序列(Time Series)

  • 时间序列对象专门设计用来存储和操作时间戳与相关联的数据。适合用于金融、经济等领域的数据分析。

8. 函数句柄(Function Handles)

  • 函数句柄是一种引用函数的方式,允许你在不直接调用函数的情况下传递函数作为参数给其他函数,或者延迟执行一个函数。

这些数据类型为 MATLAB 用户提供了一个灵活而强大的工具箱来处理各种各样的计算任务。正确选择合适的数据类型对于编写高效、可读性强的代码至关重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值