在MATLAB中,数组是最基本的数据类型,几乎所有的数据运算都涉及数组操作。下面是对MATLAB中数组的详细解释和操作示例:
数组的创建
-
一维数组(向量):
- 行向量:用方括号
[ ]
包含元素,元素之间用空格或逗号分隔。row_vector = [1 2 3 4 5]; % 用空格分隔 row_vector = [1, 2, 3, 4, 5]; % 用逗号分隔
- 列向量:用方括号
[ ]
包含元素,元素之间用分号分隔。column_vector = [1; 2; 3; 4; 5];
- 行向量:用方括号
-
二维数组(矩阵):
- 用方括号
[ ]
包含元素,元素之间用空格或逗号分隔,同一行元素之间用分号分隔。matrix = [1 2 3; 4 5 6; 7 8 9]; matrix = [1, 2, 3; 4, 5, 6; 7, 8, 9];
- 用方括号
-
空数组:
- 用一对空的方括号
[ ]
表示。empty_array = [];
- 用一对空的方括号
数组操作
-
数组的索引:
- MATLAB 中数组索引从 1 开始。
A = [10, 20, 30, 40, 50]; element = A(3); % 访问第三个元素,结果为 30
- MATLAB 中数组索引从 1 开始。
-
数组的切片:
- 提取子数组的一部分。
A = [10, 20, 30, 40, 50]; sub_array = A(2:4); % 提取第二到第四个元素,结果为 [20, 30, 40]
- 提取子数组的一部分。
-
数组的修改:
- 修改数组中的某个元素。
A = [10, 20, 30, 40, 50]; A(3) = 35; % 修改第三个元素,结果为 [10, 20, 35, 40, 50]
- 修改数组中的某个元素。
-
数组的合并:
- 水平合并(列合并)。
A = [1, 2, 3]; B = [4, 5, 6]; C = [A, B]; % 结果为 [1, 2, 3, 4, 5, 6]
- 垂直合并(行合并)。
A = [1, 2, 3]; B = [4, 5, 6]; C = [A; B]; % 结果为 [1, 2, 3; 4, 5, 6]
- 水平合并(列合并)。
-
数组的基本运算:
- 数组加法。
A = [1, 2, 3]; B = [4, 5, 6]; C = A + B; % 结果为 [5, 7, 9]
- 数组乘法(点乘)。
A = [1, 2, 3]; B = [4, 5, 6]; C = A .* B; % 结果为 [4, 10, 18]
- 数组加法。
-
数组的转置:
- 将行向量转为列向量,或将列向量转为行向量。
A = [1, 2, 3]; B = A'; % 结果为 [1; 2; 3]
- 将行向量转为列向量,或将列向量转为行向量。
示例代码
以下是一个包含上述操作的综合示例:
% 创建行向量和列向量
row_vector = [1 2 3 4 5];
column_vector = [1; 2; 3; 4; 5];
% 创建矩阵
matrix = [1 2 3; 4 5 6; 7 8 9];
% 访问数组元素
element = row_vector(3);
% 数组切片
sub_array = row_vector(2:4);
% 修改数组元素
row_vector(3) = 35;
% 合并数组
A = [1, 2, 3];
B = [4, 5, 6];
C_horz = [A, B];
C_vert = [A; B];
% 数组运算
sum_array = A + B;
prod_array = A .* B;
% 数组转置
transposed_array = A';
% 显示结果
disp('行向量:'), disp(row_vector);
disp('列向量:'), disp(column_vector);
disp('矩阵:'), disp(matrix);
disp('第三个元素:'), disp(element);
disp('切片结果:'), disp(sub_array);
disp('修改后的行向量:'), disp(row_vector);
disp('水平合并:'), disp(C_horz);
disp('垂直合并:'), disp(C_vert);
disp('数组加法结果:'), disp(sum_array);
disp('数组点乘结果:'), disp(prod_array);
disp('转置结果:'), disp(transposed_array);
通过上述示例代码,你可以全面了解 MATLAB 中数组的创建、操作和基本运算。