matlab使用教程(2)—数组索引、工作区与字符

简介: 使用单一下标引用数组中特定元素的方法称为线性索引。MATLAB® 中的每个变量都是一个可包含许多数字的数组。如果要访问数组的选定元素,请使用索引。有时,字符表示的数据并不对应到文本,例如 DNA 序列。在 R2017a 中引入双引号来创建字符串之前编写的程序中,字符数组很常见。不过,您可以在赋值语句左侧指定当前维外部的元素。要引用多个数组元素,请使用冒号运算符,这使您可以指定一个格式为。可以将文本赋给变量。如果文本包含双引号,请在定义中使用两个双引号。使用方括号串联字符数组,就像串联数值数组一样。

1数组索引

       MATLAB® 中的每个变量都是一个可包含许多数字的数组。如果要访问数组的选定元素,请使用索引。

       例如,假设有 4×4 矩阵 A

A = [1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16]

image.gif

A = 4×4

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16

       引用数组中的特定元素有两种方法。最常见的方法是指定行和列下标,例如

A(4,2)

image.gif

ans = 14

       另一种方法不太常用,但有时非常有用,即使用单一下标按顺序向下遍历每一列:

A(8)

image.gif

ans = 14

       使用单一下标引用数组中特定元素的方法称为线性索引。如果尝试在赋值语句右侧引用数组外部元素,MATLAB 会引发错误。

test = A(4,5)

image.gif

Index in position 2 exceeds array bounds (must not exceed 4).

       不过,您可以在赋值语句左侧指定当前维外部的元素。数组大小会增大以便容纳新元素。

A(4,5) = 17

image.gif

A = 4×5

1 2 3 4 0

5 6 7 8 0

9 10 11 12 0

13 14 15 16 17

       要引用多个数组元素,请使用冒号运算符,这使您可以指定一个格式为 start:end 的范围。例如,列出 A前三行及第二列中的元素:

A(1:3,2)

image.gif

ans = 3×1

2

6

       单独的冒号(没有起始值或结束值)指定该维中的所有元素。例如,选择 A 第三行中的所有列:

A(3,:)

image.gif

ans = 1×5

9 10 11 12 0

       此外,冒号运算符还允许您使用较通用的格式 start:step:end 创建等间距向量值。

B = 0:10:100

image.gif

B = 1×11

0 10 20 30 40 50 60 70 80 90 100

       如果省略中间的步骤(如 start:end 中),MATLAB 会使用默认步长值 1

2工作区变量

       工作区包含在 MATLAB 中创建或从数据文件或其他程序导入的变量。例如,下列语句在工作区中创建变量 AB

A = magic(4);
B = rand(3,5,2);

image.gif

       使用 whos 可以查看工作区的内容。

whos

image.gif

Name Size Bytes Class Attributes

A 4x4 128 double

B 3x5x2 240 double

       此外,桌面上的“工作区”窗格也会显示变量。

image.gif编辑

       退出 MATLAB 后,工作区变量不会保留。使用 save 命令保存数据以供将来使用,

save myfile.mat

image.gif

       通过保存,系统会使用 .mat 扩展名将工作区保存在当前工作文件夹中一个名为 MAT 文件的压缩文件中。

       要清除工作区中的所有变量,请使用 clear 命令。

       使用 load 将 MAT 文件中的数据还原到工作区。

load myfile.mat

image.gif

3文本和字符

3.1字符串数组中的文本

       当您处理文本时,将字符序列括在双引号中。可以将文本赋给变量。(不过需要注意的是,matlab 2017a之前的版本不支持双引号创建字符串数组)

t = "Hello, world";

image.gif

       如果文本包含双引号,请在定义中使用两个双引号。

q = "Something ""quoted"" and something else."

image.gif

q =

"Something "quoted" and something else."

       与所有 MATLAB 变量一样,tq 为数组。它们的类或数据类型是 string

whos t

image.gif

Name Size Bytes Class Attributes

t 1x1 174 string

       要将文本添加到字符串的末尾,请使用加号运算符 +

f = 71;
c = (f-32)/1.8;
tempText = "Temperature is " + c + "C"

image.gif

tempText =

"Temperature is 21.6667C"

       与数值数组类似,字符串数组可以有多个元素。使用 strlength 函数求数组中每个字符串的长度。

A = ["a","bb","ccc"; "dddd","eeeeee","fffffff"]
strlength(A)

image.gif

A =

2×3 string array

"a" "bb" "ccc"

"dddd" "eeeeee" "fffffff"

ans =

1 2 3

4 6 7

3.2字符数组中的数据

       有时,字符表示的数据并不对应到文本,例如 DNA 序列。您可以将此类数据存储在数据类型为 char 的字符数组中。字符数组使用单引号。

seq = 'GCTAGAATCC';
whos seq

image.gif

Name Size Bytes Class Attributes

seq 1x10 20 char

       数组的每个元素都包含单个字符。

seq(4)

image.gif

ans =

'A'

       使用方括号串联字符数组,就像串联数值数组一样。

seq2 = [seq 'ATTAGAAACC']

image.gif

seq2 =

'GCTAGAATCCATTAGAAACC'

       在 R2017a 中引入双引号来创建字符串之前编写的程序中,字符数组很常见。接受 string 数据的所有MATLAB 函数都能接受 char 数据,反之亦然。

4调用函数

       MATLAB® 提供了大量执行计算任务的函数。在其他编程语言中,函数等同于子例程或方法。要调用函数,例如 max,请将其输入参数括在圆括号中:

A = [1 3 5];
max(A)

image.gif

ans = 5

       如果存在多个输入参数,请使用逗号加以分隔:

B = [3 6 9];
union(A,B)

image.gif

ans = 1×5

1 3 5 6 9

       通过将函数赋值给变量,返回该函数的输出:

maxA = max(A)

image.gif

maxA = 5

       如果存在多个输出参数,请将其括在方括号中:

[minA,maxA] = bounds(A)

image.gif

minA = 1

maxA = 5

       用引号将任何文本输入括起来:

disp("hello world")

image.gif

hello world

       要调用不需要任何输入且不会返回任何输出的函数,请只键入函数名称:

clc

image.gif

       clc 函数清空命令行窗口。

相关文章
|
6月前
【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(论文)
【Simulink】示波器图形数据导入Matlab重新绘图的简明教程(论文)
|
6天前
|
Python Windows
SciPy 教程 之 SciPy Matlab 数组 1
本教程介绍了如何使用 SciPy 的 `scipy.io` 模块处理 Matlab 数组。通过 `savemat()` 方法可以将数据导出为 Matlab 格式的文件,而 `loadmat()` 方法则用于从 Matlab 文件中导入数据。示例展示了如何导出和导入一维数组,并解决了导入时数组维度增加的问题。
7 1
|
3月前
|
Go C++ Windows
Matlab 冰壶仿真游戏安装及教程
在Matlab上安装并运行冰壶仿真游戏的详细教程,包括编译环境准备、通过APP安装或直接运行源代码的方式,以及游戏的基本操作步骤。
35 0
|
5月前
|
算法 数据可视化 数据挖掘
大学生必备!GitHub星标破千的matlab教程(从新手到骨灰级玩家)
MATLAB(Matrix Laboratory)是MathWorks公司推出的用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的商业数学软件。 MATLAB具有数值分析、数值和符号计算、工程与科学绘图、数字图像处理、财务与金融工程等功能,为众多科学领域提供了全面的解决方案。
|
5月前
|
算法 数据可视化 数据挖掘
大学生必备!GitHub星标破千的matlab教程(从新手到骨灰级玩家)
MATLAB(Matrix Laboratory)是MathWorks公司推出的用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的商业数学软件。 MATLAB具有数值分析、数值和符号计算、工程与科学绘图、数字图像处理、财务与金融工程等功能,为众多科学领域提供了全面的解决方案。
|
5月前
|
数据可视化 数据挖掘 计算机视觉
Matlab教程:入门指南
Matlab教程:入门指南
|
6月前
MATLAB2022安装下载教程
MATLAB2022安装下载教程
790 2
|
6月前
|
机器学习/深度学习 算法 计算机视觉
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
霍夫变换车道线识别-车牌字符识别代码(matlab仿真与图像处理系列第5期)
|
6月前
|
编解码 移动开发 资源调度
【MATLAB】全网入门快、免费获取、持续更新的科研绘图教程系列1
【MATLAB】全网入门快、免费获取、持续更新的科研绘图教程系列1
86 0
|
6月前
第三章:MATLAB基础教程:控制流程和条件语句
第三章:MATLAB基础教程:控制流程和条件语句
65 0