b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

在matlab中使用结构-结构(struct)数组【转】(2)

电脑杂谈  发布时间:2020-06-20 19:02:10  来源:网络整理

清除,对于k = 1: 10;部门(k).number = ['No. ',int2str(k)];结束

部门

部门=

具有字段的1x10结构数组:

号码

(2)添加域: 对数组中任何结构的域添加操作,会影响整个结构数组

department(1).teacher = 40; department(1).student = 300;

部门(1).PC_computer = 40;

部门

部门=

具有字段的1x10结构数组:

号码

老师

学生

PC_计算机

(3)添加子字段的操作仅影响正在操作的特定结构,而不影响整个结构数组

结构体_四元体设备结构原理图_静蕾体结构

department(2).teacher.male = 35; department(2).teacher.female = 13;

D2T = department(2).teacher%第二结构教师域包含两个子域

D1T = department(1).teacher%第一个结构教师字段只是一个数字

D2T =

男性: 35

女: 13

D1T =

40

(4)删除子域的操作仅影响正在操作的特定结构

department(2).teacher = rmfield(department(2).teacher,'male');

department(2).teacher

ans =

女: 13

(5)删除域的操作是在整个结构数组上实现的

department = rmfield(department,'student')%删除域

部门=

具有字段的1x10结构数组:

号码

老师

PC_计算机

department = rmfield(department,{'teacher';'PC_computer'})%删除2个域

部门=

具有字段的1x10结构数组:

号码

【例4.3.2-4】结构域上数值运算和函数的运算.

n_ex = 5;%结构数组的长度

对于k = 1: n_ex,%创建一个1×5结构数组

ex(k).f =(k-1)* n_ex + [1: 5];

end;

ex%显示结构数组的结构

ex =

具有字段的1x5结构数组:

f

%在结构数组的字段中显示内容

disp([[blanks(10)'结构域中的内容'])

对于k = 1: n_ex,disp(ex(k).f),结束

结构字段中的内容

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20

21 22 23 24 25

class(ex(1).f)%检查域中内容的类型

ans =

%将每个结构域中数值数组的相应位置的数据相加并求和

sum_f = zeros(1,5)

对于k = 1: n_ex,sum_f = sum_f + ex(k).f; end,sum_f

sum_f =

55 60 65 70 75

%在结构数组字段中找到每个元素的平方根

disp([[blanks(20)'ex.f'的平方根'])

对于k = 1: n_ex,

disp(sqrt(ex(k).f)),

结束

f.f的平方根值

1.0000 1.4142 1.7321 2.0000 2.2361

2.4495 2.6458 2.8284 3.0000 3.1623

3.3166 3.4641 3.6056 3.7417 3.8730

4.0000 4.1231 4.2426 4.3589 4.4721

4.5826 4.6904 4.7958 4.8990 5.0000

[示例4.3.2-5]使用struct2cell和cell2struct指令.

(1)创建“具有2个字段的结构数组”

对于k = 1: 5,

ex(k).s = ['No. ' int2str(k)];

ex(k).f =(k-1)* 5 + [1: 5];

结束

(2)显示结构数组的内容

fprintf('%s \ n','ex.s域'的内容); fprintf('%s \',blanks(4))

对于k = 1: 5; fprintf('%s \\',[ex(k).s blanks(1)]);结束

fprintf('%s \ n',blanks(1)),fprintf('%s \ n','ex.f域内容')

fork = 1: 5; disp(ex(k).f); end%显示ex.f域的内容

ex.s域的内容

1号\ 2号\ 3号\ 4号\ 5号\

f.f域的内容

1 2 3 4 5

6 7 8 9 10

11 12 13 14 15

16 17 18 19 20

21 22 23 24 25

(3)将ex结构数组转换为单元格数组

C_ex = struct2cell(ex);%将具有2个字段的(1×5)结构数组转换为(2×1×5)个单元格数组

size(C_ex)

fprintf('%s \',[C_ex {1,1,1},blanks(3)])%显示C_ex第1页第1行第1列内容

静蕾体结构_结构体_四元体设备结构原理图

fprintf('%5g \',C_ex {2,1,1})%显示C_ex第2页,第1行结构体,第1列的内容

ans =

2 1 5

1号1 2 3 4 5

(4)将单元格数组转换为结构数组之一

FS = {'S_char';'F_num'};%带有单元格数组的预构建域名字符串

EX1 = cell2struct(C_ex,FS,1)%单元阵列到结构阵列的转换

EX1 =

具有字段的1x5结构数组:

S_char

F_numric

EX1(1)%观察新结构EX1第一结构的情况

ans =

S_char: “第一”

F_numric: [1 2 3 4 5]

(5)将单元格数组转换为结构数组2

EX2 = cell2struct(C_ex,'xx',2)

EX2 =

带有字段的2x5结构数组:

xx

(6)将单元格数组转换为结构数组三

YY = strvcat('y1','y2','y3','y4','y5'); EX3 = cell2struct(C_ex,YY,3)

EX3 =

具有字段的2x1结构数组:

y1

y2

y3

y4

y5

EX3(1)%观察到第一个结构

ans =

y1: “第一”

y2: “ 2号”

y3: “ 3号”

y4: “第4名”

y5: “ 5号”

EX3(2)%观察第二个结构

ans =

y1: [1 2 3 4 5]

y2: [6 7 8 9 10]

y3: [11 12 13 14 15]

y4: [16 17 18 19 20]

y5: [21 22 23 24 25]

[示例4.3.2-6]将带有子字段的结构数组转换为单元格数组. 此示例中的ex结构数组由示例4.2.2-5生成,然后运行以下程序.

ex(1,1).s%原始结构ex(1,1).s

ans =

1号

%添加子字段并将ex结构数组扩展为(3×5).

ex(1,1).s.sub ='SUB1';%由于该指令,原始ex(1,1).s中的字符串将消失

ex(3,1).s.sub ='SUB 3';

ex(3,1).s.num = 1/3;

ex(1,1).s%新赋值后,ex(1,1).s

的内容

ans =

sub: 'SUB 1'

新分配后

ex(3,1).s%,ex(3,1).s

的内容

ans =

sub: 'SUB 3'

num: 0.3333

C_ex_sub = struct2cell(ex)%将结构转换为单元格数组

C_ex_sub(: ,: ,1)=

[1x1结构] [] [1x1结构]

[1x5 double] [] []

C_ex_sub(: ,: ,2)=

“ 2号” [] []

[1x5 double] [] []

C_ex_sub(: ,: ,3)=

“ 3号” [] []

[1x5 double] [] []

C_ex_sub(: ,: ,4)=

“ 4号” [] []

[1x5 double] [] []

C_ex_sub(: ,: ,5)=

“ 5号” [] []

[1x5 double] [] []

size(C_ex_sub)%观察新单元格的大小

ans =

2 3 5

C_ex_sub {1,1,1}%观察第一个单元格中的内容

ans =

sub: 'SUB 1'

C_ex_sub {1,3,1}%观察(1,3,1)单元格中的含量

ans =

sub: 'SUB 3'

num: 0.3333


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-252426-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...