全站数据
8 4 2 0 5 8 1

MATLAB中struct怎么构成2×2

英语学习干货 | 简单学习,快乐成才!         
问题更新日期:2024-10-12 20:02:24

问题描述

MATLAB中struct怎么构成2×2急求答案,帮忙回答下
精选答案
最佳答案

使用struct函数创建结构

使用struct函数也可以创建结构,该函数产生或吧其他形式的数据转换为结构数组。

struct的使用格式为:

s =

sturct('field1',values1,'field2',values2,…);//注意引号

该函数将生成一个具有指定字段名和相应数据的结构数组,其包含的数据values1、valuese2等必须为具有相同维数的数据,数据的存放位置域其他结构位置一一对应的。对于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的结构数组。

下面给出利用struct构建结构数组的具体实例。

【例4.3.1-3】利用函数struct,建立温室群的数据库。

(1) struct预建立空结构数组方法之一

a = cell(2,3); % 创建2×3的元胞数组

green_house_1=struct('name',a,'volume',a,'parameter',a(1,2))

green_house_1 =

2x3 struct array with fields:

name

volume

parameter

(2)struct预建空结构数组方法之二

green_house_2=struct('name',a,'volume',[],'parameter',[])

green_house_2 =

2x3 struct array with fields:

name

volume

parameter

(3)struct预建空结构数组方法之三

green_hopuse_3(2,3)=struct('name',[],'volume',[],'parameter',[])

green_hopuse_3 =

2x3 struct array with fields:

name

volume

parameter

(4)struct创建结构数组方法之四

a1={'六号房'};a2={'3200立方米'};

green_house_4(2,3)=struct('name',a1,'volume',a2,'parameter',[]);

T6=[31.2,30.4,31.6,28.7;29.7,31.1,30.9,29.6];

green_house_4(2,3).parameter.temperature=T6;

green_house_4

ans =

2x3 struct array with fields:

name

volume

parameter

其他回答

在MATLAB中,可以使用结构数组的方式来构建2x2的struct。例如,要构建一个2x2的struct,每个结构体包含两个字段'field1'和'field2',可以按照以下方式操作:```matlab% 创建一个struct数组,大小为2x2myStruct = struct('field1', [], 'field2', []);% 按行向量的方式分配数据给结构数组myStruct(1, 1).field1 = 1;myStruct(1, 1).field2 = 'A';myStruct(1, 2).field1 = 2;myStruct(1, 2).field2 = 'B';myStruct(2, 1).field1 = 3;myStruct(2, 1).field2 = 'C';myStruct(2, 2).field1 = 4;myStruct(2, 2).field2 = 'D';```在上面的代码中,首先创建了一个空的struct数组,其中的每个元素都含有两个字段'field1'和'field2'。然后,按行对struct数组进行分配,给每个元素的相应字段赋予值。最后得到的myStruct将是一个2x2的struct,每个结构体含有'field1'和'field2'两个字段。通过访问myStruct的不同元素,可以获取相应的字段值。