首页 > 其他分享 >数据结构和矩阵细节用法:double、cell和complex #matlab

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

时间:2024-06-08 11:30:12浏览次数:22  
标签:disp 输出 people double 矩阵 cell complex table

建立矩阵用[];

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

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

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=[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'

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

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

标签:disp,输出,people,double,矩阵,cell,complex,table
From: https://blog.csdn.net/m0_56619132/article/details/139544199

相关文章

  • 覆盖路径规划经典算法 The Boustrophedon Cellular Decomposition 详解
    2000年一篇论文CoverageofKnownSpaces:TheBoustrophedonCellularDecomposition横空出世,解决了很多计算机和机器人领域的覆盖路径问题,今天我来详细解读这个算法。TheBoustrophedonCellularDecomposition算法详解这篇论文标题为"CoveragePathPlanning:TheB......
  • ISS空间转录组的细胞分割算法汇总(stardist、cellpose、QuPath、SCS)
    作者,EvilGenius我们来了解一下关于HE图片细胞分割的一些算法,以备后续的使用我们在做Xenium或者其他ISS技术的数据时候,通常都要获得一个polygons文件,直译过来就是多边形文件,其实就是我们进行的图像细胞分割文件。其实ISS技术由来已久,不过现在由于10Xxenium的发布,对于空间原......
  • 易基因: ChIP-seq等揭示酿酒酵母Tho2介导Nrd1调控衰老相关基因表达|Aging Cell
    大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。衰老的特点是分子、细胞和器官损伤的逐渐积累,导致生物功能下降,对疾病和死亡的敏感性增加。酿酒酵母(Saccharomycescerevisiae)作为首个实现完整基因组测序的模式真核细胞,具有繁殖迅速、培养条件简单、基因组小等优点,并......
  • Qt QLineEdit设置数据的输入范围QIntValidator和QDoubleValidator
    在日常开发过程中QLineEdit作为输入框,有时要限制输入的内容,比哪,考试分数为1-100,这个时候就使用QIntValidator作为限制范围,而如何输入的是带小数的呢,那么使用QDoubleValidator可以吗,下面请看具体的示例。1.限制输入的最初使用的是正则表达式1QRegExpregIntExp("^(([1-9][0......
  • android gson 扩展, 序列化int类型被转double 问题
    importcom.google.gson.Gsonimportcom.google.gson.GsonBuilderimportcom.google.gson.ToNumberStrategyimportcom.google.gson.reflect.TypeTokenimportcom.google.gson.stream.JsonReaderimportjava.io.IOExceptionimportjava.lang.reflect.Typeimportjava.m......
  • Flutter 中的 TableCell 小部件:全面指南
    Flutter中的TableCell小部件:全面指南Flutter是一个功能强大的UI框架,由Google开发,允许开发者使用Dart语言构建跨平台的移动、Web和桌面应用。在Flutter的丰富组件库中,TableCell是一个用于创建表格单元格的组件,它提供了灵活的方式来自定义表格的内容和布局。本......
  • 关于前端上传excell时间的问题
    当前端导入excell里的数据时,只能获取到下面类似的这种数据Excel存储的日期是从1900年1月1日开始按天数来计算的,也就是说1900年1月1日在Excel中是1。转化的思路和对Excel中的错误的处理因为时间戳是从1970年1月1日算起的(时间戳为0的时候是1970年1月1日)也就是说newDate(0).toLo......
  • DDR(Double Data Rate)内存技术经历了几个主要的发展阶段,每个阶段都带来了新的技术和性
    DDR(DoubleDataRate)内存技术经历了几个主要的发展阶段,每个阶段都带来了新的技术和性能改进。以下是DDR内存技术的发展阶段:DDR1:DDR1内存于2000年首次推出,它是第一个双倍数据传输速率的内存标准。DDR1内存的数据传输速率是SDRAM的两倍,从而提供了更高的内存带宽和性能。DDR2:DD......
  • 『vulnhub系列』doubletrouble-1
    『vulnhub系列』doubletrouble-1下载地址https://www.vulnhub.com/entry/doubletrouble-1,743/信息搜集使用命令,获得存活靶机IP为138,开启端口22和80nmap192.168.0.*#因为当前NAT模式,攻击机和靶机在一个内网环境中访问80的web服务,是一个登录页面又是qdPm,之前做过一个q......
  • 浅谈C#中取消令牌CancellationTokenSource
    基础操作CancellationTokenSourcecancellationTokenSource=newCancellationTokenSource();cancellationTokenSource.Token.Register(()=>{Console.WriteLine("取消了1111");});......