keywords: MATLAB 命令窗口, 向量和矩阵操作, 基本数学运算, 文件和路径管理


MATLAB 作为一款强大的科学计算软件,掌握其基本操作是高效使用 MATLAB 的前提。本章我们将详细探讨 MATLAB 的几个基础方面:命令窗口的使用、向量和矩阵的创建与运算、基本数学运算,以及文件和路径管理。这些内容是 MATLAB 编程的基石,深入理解并熟练运用将使你受益匪浅。

2.1 MATLAB 的命令窗口

命令窗口是我们与 MATLAB 交互的主要方式。在这里,我们可以直接输入命令,执行计算并查看结果。让我们先来了解几个常用的命令。

2.1.1 基本操作命令

  • clc: 清空命令窗口的内容
  • clear: 清空工作区变量
  • whowhos: 显示当前工作区的变量信息
  • diary: 记录命令窗口内容到文件

下面通过一个具体的例子,演示这几个命令的使用:

  1. >> x = 1:5; % 创建变量x
  2. >> y = rand(1,5); % 创建变量y
  3. >> who % 显示工作区变量
  4. Your variables are:
  5. x y
  6. >> whos % 显示详细信息
  7. Name Size Bytes Class Attributes
  8. x 1x5 40 double
  9. y 1x5 40 double
  10. >> diary on % 开始记录
  11. >> x+y % 执行一些操作
  12. ans =
  13. 1.8147 2.9058 3.1270 4.9134 5.6324
  14. >> diary off % 停止记录
  15. >> clear % 清空工作区
  16. >> clc % 清空命令窗口

使用diary ondiary off可以方便地记录我们在命令窗口中的操作,日后回顾代码或整理笔记时会非常有用。

2.1.2 常用快捷键

MATLAB 提供了许多快捷键,可以大大提高我们的操作效率。以下是一些常用的快捷键:

  • : 调出历史命令
  • Tab: 自动补全命令或文件名
  • Ctrl+C: 终止当前执行的命令
  • Ctrl+D: 删除当前行
  • Ctrl+R: 注释/取消注释当前行

试试在命令窗口中使用这些快捷键,体会它们带来的便利吧。

2.1.3 命令历史记录

MATLAB 会自动保存我们在命令窗口中执行过的命令。我们可以通过以下方式来查看和利用历史命令:

  • 使用箭头键浏览历史命令
  • 使用history命令查看完整的历史记录
  • 双击历史记录中的某行命令,将其复制到命令行中

例如:

  1. >> history
  2. 1 x = 1:5;
  3. 2 y = rand(1,5);
  4. 3 who
  5. 4 whos
  6. 5 diary on
  7. 6 x+y
  8. 7 diary off
  9. 8 clear
  10. 9 clc
  11. 10 history

善用历史命令可以让我们少敲很多重复的代码,提高效率。

2.2 向量和矩阵操作

在 MATLAB 中,向量和矩阵是最基本也是最常用的数据类型。下面我们来学习如何创建和操作向量与矩阵。

2.2.1 创建向量和矩阵

  • 使用方括号[]创建向量:
  1. >> v1 = [1 2 3 4 5] % 行向量
  2. v1 =
  3. 1 2 3 4 5
  4. >> v2 = [1; 2; 3; 4; 5] % 列向量
  5. v2 =
  6. 1
  7. 2
  8. 3
  9. 4
  10. 5
  • 使用分号;分隔行,逗号,或空格分隔列:
  1. >> A = [1 2 3; 4 5 6; 7 8 9] % 3x3矩阵
  2. A =
  3. 1 2 3
  4. 4 5 6
  5. 7 8 9
  • 使用zerosoneseye等函数快速创建特殊矩阵:
  1. >> zeros(2,3) % 全零矩阵
  2. ans =
  3. 0 0 0
  4. 0 0 0
  5. >> ones(2,2) % 全一矩阵
  6. ans =
  7. 1 1
  8. 1 1
  9. >> eye(3) % 单位矩阵
  10. ans =
  11. 1 0 0
  12. 0 1 0
  13. 0 0 1

2.2.2 访问向量和矩阵元素

  • 使用()访问向量或矩阵的单个元素:
  1. >> v1(3) % 访问v1的第3个元素
  2. ans = 3
  3. >> A(2,3) % 访问A的第2行第3列元素
  4. ans = 6
  • 使用:访问整行或整列:
  1. >> A(2,:) % 访问A的第2
  2. ans =
  3. 4 5 6
  4. >> A(:,3) % 访问A的第3
  5. ans =
  6. 3
  7. 6
  8. 9

2.2.3 向量和矩阵的基本运算

  • 加减运算:
  1. >> v1 + v1
  2. ans =
  3. 2 4 6 8 10
  4. >> A - ones(3)
  5. ans =
  6. 0 1 2
  7. 3 4 5
  8. 6 7 8
  • 数乘和乘方:
  1. >> 2*v1
  2. ans =
  3. 2 4 6 8 10
  4. >> A.^2 % 矩阵逐元素平方
  5. ans =
  6. 1 4 9
  7. 16 25 36
  8. 49 64 81
  • 转置:
  1. >> v1'
  2. ans =
  3. 1
  4. 2
  5. 3
  6. 4
  7. 5
  8. >> A' % 矩阵转置
  9. ans =
  10. 1 4 7
  11. 2 5 8
  12. 3 6 9

2.2.4 矩阵分解与求解

  • 特征值与特征向量:
  1. >> [V,D] = eig(A)
  2. V =
  3. -0.2320 -0.7858 0.4082
  4. -0.5253 0.0868 -0.8165
  5. -0.8187 0.6123 0.4082
  6. D =
  7. 16.1168 0 0
  8. 0 1.0000 0
  9. 0 0 -2.1168
  • 矩阵求逆:
  1. >> inv(A)
  2. ans =
  3. -1.7778 1.3333 0
  4. 1.3333 -2.2222 1.0000
  5. 0 1.0000 -0.5556
  • 求解线性方程组:
  1. >> A = [1 2; 3 4];
  2. >> b = [5; 11];
  3. >> x = A\b % 等价于x = inv(A)*b
  4. x =
  5. 1
  6. 2

以上只是矩阵运算的冰山一角,MATLAB 提供了非常丰富的矩阵操作函数,大家可以在使用中进一步探索。

2.3 基本数学运算

MATLAB 提供了各种数学函数,可以方便地进行数值计算。

2.3.1 标量运算

  • 四则运算:
  1. >> 1 + 2
  2. ans = 3
  3. >> 5 - 3
  4. ans = 2
  5. >> 2 * 4
  6. ans = 8
  7. >> 10 / 5
  8. ans = 2
  • 乘方和开方:
  1. >> 2^3
  2. ans = 8
  3. >> sqrt(16)
  4. ans = 4

2.3.2 向量和矩阵运算

  • 逐元素运算:
  1. >> [1 2 3] + [4 5 6]
  2. ans =
  3. 5 7 9
  4. >> [1 2; 3 4] .* [5 6; 7 8] % 矩阵逐元素相乘
  5. ans =
  6. 5 12
  7. 21 32
  • 矩阵乘法:
  1. >> [1 2; 3 4] * [5 6; 7 8]
  2. ans =
  3. 19 22
  4. 43 50

2.3.3 数学函数的使用

MATLAB 内置了大量数学函数,包括三角函数、指数函数、统计函数等。下面列举几个常用的函数:

  • 三角函数:
  1. >> sin(pi/6)
  2. ans = 0.5000
  3. >> cos(pi/3)
  4. ans = 0.5000
  5. >> tan(pi/4)
  6. ans = 1
  • 指数和对数:
  1. >> exp(1)
  2. ans = 2.7183
  3. >> log(10)
  4. ans = 2.3026
  5. >> log10(100)
  6. ans = 2
  • 统计函数:
  1. >> mean([1 2 3 4 5])
  2. ans = 3
  3. >> max([1 2 3 4 5])
  4. ans = 5
  5. >> sum([1 2 3 4 5])
  6. ans = 15

MATLAB 的数学函数非常丰富,大家可以在使用过程中查阅文档,灵活运用。

2.4 文件和路径管理

在实际应用中,我们通常需要读写外部文件,或者在不同路径下操作。接下来我们就来学习 MATLAB 的文件和路径管理。

2.4.1 文件的读取和写入

  • 使用xlsread读取 Excel 文件:
  1. >> data = xlsread('example.xlsx');
  2. >> data(1:5,:) % 查看前5行数据
  3. ans =
  4. 1.0000 2.0000 3.0000
  5. 4.0000 5.0000 6.0000
  6. 7.0000 8.0000 9.0000
  7. 10.0000 11.0000 12.0000
  8. 13.0000 14.0000 15.0000
  • 使用csvread读取 CSV 文件:
  1. >> data = csvread('example.csv');
  2. >> data(1:5,:) % 查看前5行数据
  3. ans =
  4. 1.0000 2.0000 3.0000
  5. 4.0000 5.0000 6.0000
  6. 7.0000 8.0000 9.0000
  7. 10.0000 11.0000 12.0000
  8. 13.0000 14.0000 15.0000
  • 使用saveload保存、加载 MAT 文件:
  1. >> v = 1:10;
  2. >> save test.mat v; % 保存变量vtest.mat文件
  3. >> clear % 清空工作区
  4. >> load test.mat % 从文件加载变量
  5. >> v
  6. v =
  7. 1 2 3 4 5 6 7 8 9 10

2.4.2 路径的设置和管理

  • 使用cd命令切换当前工作目录:
  1. >> cd 'C:\Users\MATLAB' % Windows系统
  2. >> cd '/home/MATLAB' % Linux系统
  3. >> pwd % 显示当前路径
  4. ans =
  5. 'C:\Users\MATLAB'
  • 使用addpathrmpath管理搜索路径:
  1. >> addpath 'C:\Users\MATLAB\functions' % 添加路径
  2. >> rmpath 'C:\Users\MATLAB\functions' % 移除路径
  3. >> path % 显示所有搜索路径
  4. MATLABPATH
  5. C:\Users\MATLAB
  6. C:\Program Files\MATLAB\R2021b\toolbox\...

2.4.3 文件格式的转换

有时我们需要在不同文件格式之间转换数据,MATLAB 提供了一些便捷的函数:

  • 将矩阵写入文本文件:
  1. >> A = magic(5);
  2. >> dlmwrite('matrix.txt', A) % 写入文本文件
  • 将数据写入 Excel:
  1. >> xlswrite('output.xlsx', A) % 写入Excel文件
  • 将图形保存为图像文件:
  1. >> plot(1:10)
  2. >> saveas(gcf, 'figure.png') % 保存当前图形为PNG格式

文件读写在数据分析和结果展示中非常常用,掌握这些操作可以大大提高我们的工作效率。

本章小结

本章我们系统学习了 MATLAB 的基本操作,包括:

  1. 命令窗口的使用,如常用命令、快捷键和历史记录等。
  2. 向量和矩阵的创建、访问、运算以及分解求解。
  3. 基本数数学运算,包括标量运算、向量矩阵运算和常用数学函数。
  4. 文件读写和路径管理,涉及常见的文本、MAT、Excel 等文件格式。

通过本章的学习,相信大家已经能够灵活运用 MATLAB 进行基本的数值计算和数据操作了。这些内容是我们学习 MATLAB 的基础,在后续的章节中,我们将基于这些基本操作,学习更加高级和专业的内容,解决实际的科学和工程问题。

MATLAB 是一个非常强大的工具,它的功能远不止我们在本章所涉及的。希望大家能够在学习和实践中不断探索,挖掘 MATLAB 的更多特性,用编程的思维去认识这个世界,去解决各种有趣的问题。

让我们携手前行,一起进入 MATLAB 更精彩的世界吧!