数据结构和矩阵细节用法:double、cell和complex #matlab

矩阵建立

建立矩阵用[];

矩阵的同一行内的元素用逗号或者空格隔开;

矩阵的不同行的元素用分号隔开

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}); % 输出 1

disp(C{2}); % 输出 'text'

disp(C{3}(1,2)); % 输出 2

% 创建一个二维单元矩阵

C2 = {1, 'a'; 2, 'b'; 3, 'c'};

% 访问二维单元矩阵中的数据

disp(C2{2,2}); % 输出 'b'

从上述代码中,可以看出来,

单元矩阵用{}建立;用“{}”输出整列和整列;用“{}”和“()”结合或者“{}”输出具体的某行某列的元素

  • 32
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值