矩阵建立
建立矩阵用[];
矩阵的同一行内的元素用逗号或者空格隔开;
矩阵的不同行的元素用分号隔开
eg. 矩阵 A=
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
在matlab中矩阵A表示为:
clc;clear;
A=[1,2,3;4,5,6;7,8,9]; %或者A=[1 2 3;4 5 6;7 8 9];
%如果不用A(m,n)表示矩阵元素,而用A(x)表示元素,那么就要注意x是按照列来排序的,即A(2)=4;A(6)=8;
小矩阵构建大矩阵
假设: A=[1,2,3;4,5,6;7,8,9]; B=-A;
我们可以构建矩阵C=[B,A;A,B;A,A];
C=
-1 | -2 | -3 | 1 | 2 | 3 |
-4 | -5 | -6 | 4 | 5 | 6 |
-7 | -8 | -9 | 7 | 8 | 9 |
1 | 2 | 3 | -1 | -2 | -3 |
4 | 5 | 6 | -4 | -5 | -6 |
7 | 8 | 9 | -7 | -8 | -9 |
1 | 2 | 3 | 1 | 2 | 3 |
4 | 5 | 6 | 4 | 5 | 6 |
7 | 8 | 9 | 7 | 8 | 9 |
数值矩阵
数值矩阵在matlab的工作区一般有两种,一种是double(双精度浮点数),还有一种就是table(表格)类型
double类型可以分为double和double(complex)。double就是实数,double(complex)就是复数(a+bi)。
举例说明:double类型的矩阵A=
1 | 2 | 3 |
4 | 5 | 6 |
7 | 8 | 9 |
double(complex)类型的矩阵B=
此处的table类型矩阵其实特指的是从表格文件中读取出的矩阵,有的时候读进matlab中后显示是double类型,有的时候是table。table可以包含不同列的数据,每列可以有不同的数据类型(包括double、char、logical等),并且每列通常有一个列名(VariableNames)。table特别适用于存储具有列名、行标签或混合数据类型的表格数据。
举例说明:
% 创建一个 table,包含不同类型的列T = table(1:3, {'A', 'B', 'C'}, true(1,3), 'VariableNames', {'Number', 'Letter', 'Flag'});whos T % 查看 T 的信息,可以看到其是一个 table
注:在这个例子中,T是一个table,包含三列:一列是double类型的数字,一列是char类型的字母,还有一列是logical类型的标志。
% 查询 Letter 列中的第二个值letterValue = T.Letter(2); % 使用点号`.`和括号`()`可以提取单个元素的值disp(letterValue);
table类型矩阵可以使用点号`.`和括号`()`输出具体的某行某列的元素
结构矩阵
结构矩阵在工作区用structure 表示
与数值矩阵不同,结构矩阵中不仅可以包含纯数,还可以包含文本,例如学员信息表中姓名为文本,学号为数值
除了在excel中直接输入数据构成结构矩阵,该如何再matlab中构建结构矩阵呢?举例:
% 创建一个包含多个人的结构矩阵people(1).name = 'Alice';people(1).age = 30;people(1).occupation = 'Engineer';people(2).name = 'Bob';people(2).age = 25;people(2).occupation = 'Doctor';disp(people(1).name); % 输出 'Alice'disp(people.name); % 输出 'Alice'和'Bob'
从上述代码中,可以看出来,
结构矩阵用“.”输出整列;用“()”输出整行,用“.”和“()”结合输出具体的某行某列的元素
单元矩阵
单位矩阵在工作区用cell 表示
与结构矩阵不同,单位矩阵中中每个元素都是一个单元(cell),可以包含任何类型的数据(包括其他单元矩阵)。简单来说,结构矩阵的每一列为一个变量,即类似于分类变量,每个变量下的数据类型是相同的,例如姓名下的数据全是文本,学号下的数据全是数值;而单位矩阵的各个矩阵是不同的,第一行第一列是数值,第一行第二列可能是文本,第二行第一列可能又是包含n个元素的矩阵,即你可以理解为单元矩阵是“乱输一通”的的矩阵。
举例:
% 创建一个单元矩阵C = {1, 'text', [1 2 3; 4 5 6]};% 访问单元矩阵中的数据disp(C{1}); % 输出 1disp(C{2}); % 输出 'text'disp(C{3}(1,2)); % 输出 2% 创建一个二维单元矩阵C2 = {1, 'a'; 2, 'b'; 3, 'c'};% 访问二维单元矩阵中的数据disp(C2{2,2}); % 输出 'b'
从上述代码中,可以看出来,
单元矩阵用{}建立;用“{}”输出整列和整列;用“{}”和“()”结合或者“{}”输出具体的某行某列的元素