Matlab常用数据类型(一)
来源:互联网 发布:淘宝网怎么修改差评 编辑:程序博客网 时间:2024/06/01 10:00
前言
总结一下matlab的常用数据类型,消除对matlab的陌生感,方便以后查询。
多维数组
Matlab中,向量可以视为一维数组,矩阵可以视为二维数组,维数≷2的都称为多维数组。
第三维称为”页”,第四维称为“箱”。
cat命令实现行并列并操作
A = 1 2 3 4>> Z = cat(1,A,A)#行并Z = 1 2 3 4 1 2 3 4>> Z = cat(2,A,A)#列并Z = 1 2 1 2 3 4 3 4
cell数组
可以将元胞数组看做一种无所不包的广义矩阵,其元素可以存储不同数据类型的数据。
- cell数组的创建:
区别于一般矩阵,元胞数组使用花括号”{}”创建。
- cell寻址:
元胞和元胞里的内容是两个不同范畴的东西,我理解为cell是一个指针数组,其元素一个指针,要想得到对应元素所指向的元素需要一层解引用。matlab中设计两种不同的操作:元胞外标识
和元胞内编址
。
A(2,4)指的是第2行第4列的元胞元素。
A{2,4}指的是元胞数组中第2行第4列的元胞内容。
>> cell_one = {1,'3','3'}cell_one = [1] '3' '3'>> cell_one{2,3}=23 #改变元胞内容cell_one = [1] '3' '3' [] [] [23]>> cell_two = cell(2,2)cell_two = [] [] [] []>> cell_two(1,2)={1}#改变元胞内容cell_two = [] [1] [] []>> cell_two{2,2}=3cell_two = [] [1] [] [3]
结构数组(structure)
类似于C++的结构体,结构是MATLAB提供的一种将选择的数据存储到一个实体的数据类型。用户可通过存储数据时指定的域名
来对域中的数据进行访问。
structure数组的创建
- 直接赋值法
>> strct.name = 'one'strct = name: 'one'>> strct.sex = 'f'strct = name: 'one' sex: 'f'>> strct(2).name = 'two'strct = 1x2 struct array with fields: name sex
- 使用struct函数
>> struc = struct('name','one','sex','f','moneys',[1,2,3])struc = name: 'one' sex: 'f' moneys: [1 2 3]>>
需要注意的是,在结构数组的赋值过程中,如果需要将元胞数组赋值给结构数组需要用符号”{{}}”。
Map容器
map容器是一个快速键查找数据结构,可以提供多种方法对其中的个体元素进行寻访。相当于python中的键值对,不同的是一个map的键的数据类型必须是一致的。
Map对象的创建
Map是Map类中的对象,有三个只读的默认属性。需要注意的是在示例化Map对象之后KeyType、和ValueType就不能修改,即一个Map能接受到的键值对的类型在创建Map时就固定了。
Map类的只读属性
属性 含义 Count 存储键值对的个数 KeyType 表示key的数据类型 ValueType 表示value的数据类型,两种以上时为any
> map_null = containers.Map()map_null = Map (具有属性): Count: 0 KeyType: char ValueType: any>> map_null(1) = 1 % 空map的实例map_null的键应该是char错误使用 containers.Map/subsasgn指定的 key 类型与此容器所需的类型不匹配。>> map_null('1') = 1map_null = Map (具有属性): Count: 1 KeyType: char ValueType: any>> mounth = {'Jan','Feb'};v = {327,363};>> rainMap = containers.Map(mounth,v)rainMap = Map (具有属性): Count: 2 KeyType: char ValueType: double>> rainMap('g')='g'错误使用 containers.Map/subsasgn指定的 value 类型与此容器所需的类型不匹配。>>
查看Map的内容
可以通过keys方法查看Map中的所有键,values方法查看Map中的所有值。返回的cell数组。
>> rainMap.keys()ans = 'Feb' 'Jan' 'g'>> rainMap.values()ans = [363] [327] [3]>>
Map的读取
- Map只能通过键寻访对应的值,需要注意一下几点:
- 输入不存在的键会报错。
- 不支持整数下标索引。(除非对应的键就是整数)
- 不支持冒号运算。
- 需要同时对多个键进行寻访,可以使用values方法。
>> rainMap.keys()ans = 'Feb' 'Jan' 'g'>> rainMap.values()ans = [363] [327] [3]>> rainMap(1)错误使用 containers.Map/subsref指定的 key 类型与此容器所需的类型不匹配。>> rainMap('f')错误使用 containers.Map/subsref此容器中不存在指定的键。>> rainMap.values({'Feb','Jan'})ans = [363] [327]
Map是句柄对象
在Matlab中的类分为两种:句柄类
和实体值类
。Map类的对象的赋值运算,其实是在创建一个对象副本。
>> mapa = containers.Map([1,2],{'2',3})mapa = Map (具有属性): Count: 2 KeyType: double ValueType: any>> mapb = mapamapb = Map (具有属性): Count: 2 KeyType: double ValueType: any>> mapb(3)='g'mapb = Map (具有属性): Count: 3 KeyType: double ValueType: any>> mapamapa = Map (具有属性): Count: 3 KeyType: double ValueType: any
Table表类型
类似于python中的DataFrame,但是每一列的数据不要求是同一类型,而且行名和列名不需要指定为数字。
table创建
>> name = {'tom';'jack'}; height = {177,160}'; tables = table(name,height,'rowname',{'1','22'});>> tablestables = name height ______ ______ 1 'tom' [177] 22 'jack' [160] >> tables.Propertiesans = Description: '' VariableDescriptions: {} VariableUnits: {} DimensionNames: {'Row' 'Variable'} UserData: [] RowNames: {2x1 cell} VariableNames: {'name' 'height'}>>
table元素的存取
>> tables(:,'name') % 'name'列ans = name ______ 1 'tom' 22 'jack'>> tables(1,:) % 第1行ans = name height _____ ______ 1 'tom' [177] >> tables('22',:) % '1'行ans = name height ______ ______ 22 'jack' [160] >> tables(:,1:2) ans = name height ______ ______ 1 'tom' [177] 22 'jack' [160] >> tables.heightans = [177] [160]
- Matlab常用数据类型(一)
- 2017.3.20 MATLAB(一)数据类型
- C# 常用数据类型转换(一)
- Matlab 常用图像函数(一)
- Matlab常用函数举例(一)
- matlab常用小函数(一)
- 通信仿真常用matlab函数(一)
- matlab数据类型一(整型、浮点、逻辑、字符)
- 【matlab】数据类型一(整型、浮点、逻辑、字符)
- MATLAB(2)数据类型一(数值型和…
- matlab中常用函数(一)
- 共同学习Java源码--常用数据类型--String(一)
- oracle学习笔记(一)oracle常用数据类型
- python笔记(一)常用数据类型和方法
- MATLAB常用图像图像预处理算法汇总(一)
- matlab数据类型(数值类型)
- 图像类型、MATLAB数据类型,以及类型之间的转换(一)
- Matlab数据类型
- Ubuntu 17.04 安装Hadoop 3.0.0-beta1
- 数据库的三大范式
- 【uva-200】Rare Order(拓扑排序过的第一道)
- 62. Unique Paths
- 一些UiAutomator测试时出现的问题
- Matlab常用数据类型(一)
- macOS系统 安装MySQL-python驱动方法
- Java编程思想第四版第五章练习
- asyncio
- 学术搜索,Web Of Science 核心合集检索方法,SCI分区情况查看方法
- hdu 2544
- Java多线程-新特征-原子量
- ubuntu16.04配置caffeCPU版常遇到的问题总结
- 了克己奉公克里斯多夫叽里呱啦开始的减肥了客观