matlab中怎样提取结构体下的数据库,MATLAB如何提取结构体中数据
1. 结构数组的创建
MATLAB提供了两种定义结构的方式:直接应用和使用struct函数。
a) 使用直接引用方式定义结构
与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个复数变量x:
x.real = 0; % 创建字段名为real,并为该字段赋值为0
x.imag = 0 % 为x创建一个新的字段imag,并为该字段赋值为0
x =
real: 0
imag: 0
然后可以将其动态扩充为数组:
x(2).real = 0; % 将x扩充为1×2的结构数组
x(2).imag = 0;
在任何需要的时候,也可以为数组动态扩充字段,如增加字段scale:
x(1).scale = 0;
这样,所有x都增加了一个scale字段,而x(1)之外的其他变量的scale字段为空:
x(1) % 查看结构数组的第一个元素的各个字段的内容
ans =
real: 0
imag: 0
scale: 0
x(2) % 查看结构数组的第二个元素的各个字段的内容,注意没有赋值的字段为空
ans =
real: 0
imag: 0
scale: []
应该注意的是,x的real、imag、scale字段不一定是单个数据元素,它们可以是任意数据类型,可以是向量、数组、矩阵甚至是其他结构变量或元胞数组,而且不同字段之间其数据类型不需要相同。例如:
clear x; x.real = [1 2 3 4 5]; x.imag = ones(10,10);
数组中不同元素的同一字段的数据类型也不要求一样:
x(2).real = '123';
x(2).imag = rand(5,1);
甚至还可以通过引用数组字段来定义结构数据类型的某字段:
x(3).real = x(1); x(3).imag = 3;
x(3)
ans =
real: [1x1 struct]
imag: 3
b) 使用struct函数创建结构
使用struct函数也可以创建结构,该函数产生或把其他形式的数据转换为结构数组。
struct的使用格式为:
s = sturct('field1',values1,'field2',values2,…);
该函数将生成一个具有指定字段名和相应数据的结构数组,其包含的数据values1、values2等必须为具有相同维数的数据,数据的存放位置与其他结构位置一一对应的。
对于struct的赋值用到了元胞数组。数组values1、values2等可以是元胞数组、标量元胞单元或者单个数值。每个values的数据被赋值给相应的field字段。
当valuesX为元胞数组的时候,生成的结构数组的维数与元胞数组的维数相同。而在数据中不包含元胞的时候,得到的结构数组的维数是1×1的。例如:
s = struct('type',{'big','little'},'color',{'blue','red'},'x',{3,4})
s =
1x2 struct array with fields:
type
color
x
得到维数为1×2的结构数组s,包含了type、color和x共3个字段。这是因为在struct函数中{'big','little'}、{'blue','red'}和{3,4}都是1×2的元胞数组,可以看到两个数据成分分别为:
s(1,1)
ans =
type: 'big'
color: 'blue'
x: 3
s(1,2)
ans =
type: 'little'
color: 'red'
x: 4
相应的,如果将struct函数写成下面的形式:
s = struct('type',{'big';'little'},'color',{'blue';'red'},'x',{3;4})
s =
2x1 struct array with fields:
type
color
x
则会得到一个2×1的结构数组。
2. 结构数组的操作
MATLAB中专门用于对结构数组的操作的函数并不多,通过help datatypes获取数据类型列表,可以看到其中的结构数据类型的有关的函数。
结构数组的操作函数
deal把输入处理成输出
Fieldnames获取结构的字段名
getfield获取结构中指定字段的值
Rmfield删除结构的字段(不是字段内容)
setfield设置结构数组中指定的字段的值
Struct创建结构数组
struct2cell结构数组转化成元胞数组
Isfield判断是否存在该字段
isstruct判断某变量是否是结构类型
matlab中怎样提取结构体下的数据库,MATLAB如何提取结构体中数据相关推荐
- SSM框架下后台数据库传送到前端jsp文件中
SSM框架中后台存储在数据库中的数据,如何传送到前端中使用呢? 前提:SSM框架已经搭好: Category.xml中的SQL语句集已经写好 Category中的GetXX()和SetXX()方法也已 ...
- virtualbox中安装xp系统、安装oracle数据库到虚拟机的xp系统中、主机连接oracle、备份xp系统、oracle数据库的一些基本概念(学习oracle数据库的准备工作)-day01
目录 1. 安装virtualbox 1.1 什么是virtualbox 1.2 安装virtualbox 1.3 virtualbox跑xp系统 1.4 让虚拟机的xp与外面的系统网络互通 2. 安 ...
- matlab lu分解 l不是下三角,在MATLAB中执行LU分解而不进行旋转
默认情况下,MATLAB的lu始终执行旋转.如果您在尝试执行传统的LU分解算法时,例如对角线系数等于0,则在执行高斯消元法创建上三角矩阵U时需要对角系数,因此无法工作除以零误差.需要旋转以确保分解稳定 ...
- linux下mysql目录结构_linux下mysql安装配置与目录结构
本节内容: linux下mysql安装与配置.mysql目录结构. 1.准备安装程序(官方网站下载) 服务端:MySQL-server-community-5.1.44-1.rhel4.i386.rp ...
- 基带信号及其眼图MATLAB仿真实现,Matlab通信仿真——带限系统下的基带信号
Matlab通信仿真--带限系统下的基带信号 Matlab通信仿真--带限系统下的基带信号 1 余弦滚降特性 满足消除码间串扰条件的H(f)有很多种,容易想到的一种极限情况,就是H(f)为理想低通型. ...
- matlab 眼图 值,Matlab通信仿真——带限系统下的基带信号
Matlab通信仿真--带限系统下的基带信号 Matlab通信仿真--带限系统下的基带信号 1 余弦滚降特性 满足消除码间串扰条件的H(f)有很多种,容易想到的一种极限情况,就是H(f)为理想低通型. ...
- SQLSERVER2005的安装目录结构(下)
SQLSERVER2005的安装目录结构(下) SQLSERVER2005的安装目录结构(下) 上篇介绍了SQLSERVER在注册表里保存的一些设置,这篇介绍他在你的硬盘里存放了哪些组件和工具 带你进 ...
- Linux下Mysql数据库的基础操作
Linux下Mysql数据库的基础操作 一.Mysql数据介绍 二.数据库相关术语介绍 1.数据库相关名词 2.相关术语介绍 三.Mysql数据库的管理 1.创建数据库用户 2.查询用户状态 3.修改 ...
- mysql提取5号的数据库_五、各类数据库信息的提取
为了后续做代码生成器,有必要了解下各类数据库信息的提取.一般需要提取的信息包括:数据库列表,存储过程,视图,数据表,数据表字段等.当然,类似SQLite这种数据库,需要提取的信息就相对很少了. (一) ...
- Linux下MongoDB的安装,通过配置文件启动Mongodb的方式研究,mongodb自启动脚本(Linux),Windows下安装MongoDB服务,集群部署,数据导出和恢复
关于MongoDB的windows的 安装,可以参考: http://www.runoob.com/mongodb/mongodb-window-install.html 关于Linux的安装可以参考 ...
最新文章
- CUDA Samples: Calculate Histogram(atomicAdd)
- Windows下在Django中创建项目时ImportError: No module named django.core解决方法
- 经典论文复现 | 基于深度卷积网络的图像超分辨率算法
- 128.3. Example 配置实例
- Bailian4004 数字组合【递归+DP】
- HDU 1754 I Hate It(线段树版)
- Croc Champ 2013 - Round 1 E. Copying Data(线段树)
- error: ‘VPX_IMG_FMT_RGB32’ undeclared (first use in this function); did you mean ‘VPX_IMG_FMT_NV12’?
- Atitit 互联网技术公司防爆指南技术规范标准流程 30个危险物品
- python自制懒人听书
- 游戏策划入门(6)——把模块变成现实
- 操作系统原理1-3章答案 黑新宏 胡元义主编
- 电阻元件、电感元件、电容元件
- php 领红包程序,用PHP实现的抢红包小程序
- linux7 etc下的grub2,Centos7安装 grub2 配置技巧:改变启动顺序
- 【Paper】DTWSequence Analysis
- 我玩某宝新模式2个月收λ15万,你觉得过气的行业,真的很赚钱!
- 高德地图——浏览器定位+点击获取经纬度+去除高德百度地图左下角logo
- java中兴参与实参相同_java错题集
- ANSYS教程与使用
热门文章
- D3/Echarts/G2的对比分析
- 笔记_深度学习相关_PyTorch
- OpenCV_(Based on Sobel Filter to Detect edges) 基于Sobel算子的方向滤波器检查边缘
- 分布式存储系统学习笔记(三)—分布式键值系统(2)—淘宝Tair
- 前端复习笔记(一)——HTML
- YOLOv5永不缺席 | YOLO-Pose带来实时性高且易部署的姿态估计模型!!!
- 瞒不住了!超过4000人都在这里死磕3D视觉技术
- 基于先验LiDAR点云地图的单目VIO定位
- 综述|线结构光中心提取算法研究
- ROS下同时接收多个话题并实现相机和雷达的数据融合