设为首页 加入收藏

TOP

Matlab基础学习------架构数组
2015-07-20 17:43:03 来源: 作者: 【 】 浏览:1
Tags:Matlab 基础 学习 ------ 架构

Matlab架构数组类似于C语言中的结构体。

架构数组的创建:1,直接对域赋值产生“单架构”;2,使用struct()进行创建。

>> %创建架构数组
>> user(1).name='张三';
user(1).address='大连';
user(1).age=23;
>> user(2).age=23;
user(2).address='大连1';
user(2).name='张三2';
>> user

user = 

1x2 struct array with fields:

    name
    address
    age

>> user(1)

ans = 

       name: '张三'
    address: '大连'
        age: 23

>> user(2)

ans = 

       name: '张三2'
    address: '大连1'
        age: 23

>> user(5)=struct('name','李四','address','沈阳','age',33)%使用struct创建架构数组

user = 

1x5 struct array with fields:

??? name
??? address
??? age

>> user(5)

ans = 

?????? name: '李四'
??? address: '沈阳'
??????? age: 33
架构数组域的基本操作:

访问域的内容:1,可以直接用 . 进行操作;2,用getfield()函数

>> name1=getfield(user,'name')   %array_index没指定时默认为第一个

name1 =

张三

>> add2=getfield(user,{2},'address') %访问第二个的address

add2 =

大连1

>> user(3).address='山东省泰安市'???? %修改值,方便操作

user = 

1x5 struct array with fields:

??? name
??? address
??? age

>> partaddress=getfield(user,{3},'address',{1:4})? %访问address域中第三个值的前四个字符

partaddress =

山东省泰

>> getfield(user,{3})? %访问第三个

ans = 

?????? name: '张三3'
??? address: '山东省泰安市'
??????? age: 23

%增加域:
>> user(3).school='北京大学'

user = 

1x5 struct array with fields:

??? name
??? address
??? age
??? school

>> user(3)

ans = 

?????? name: '张三3'
??? address: '山东省泰安市'
??????? age: 23
???? school: '北京大学'

>> user(2)

ans = 

?????? name: '张三2'
??? address: '大连1'
??????? age: 23
???? school: []

%删除架构数组中的域
>> newuser=rmfield(user,'age')? %删除架构数组中的域,将新的架构数组赋值给newuser,原架构数组不发生变化

newuser = 

1x5 struct array with fields:

??? name
??? address
??? school

>> newuser(3)

ans = 

?????? name: '张三3'
??? address: '山东省泰安市'
???? school: '北京大学'

>> user(3)

ans = 

?????? name: '张三3'
??? address: '山东省泰安市'
??????? age: 23
???? school: '北京大学'

架构数组操作函数:

>> fieldnames(user)   %以字符串的形式返回架构数组中的所有域名

ans = 

    'name'
    'address'
    'age'
    'school'

>> isstruct(user)  %判断某变量是否是架构数组,是返回1,不是返回0

ans =

     1

>> isfield(user,'name')   %判断架构数组中是否存在某域名

ans =

     1

>> isfield(user,'name1111')   %判断架构数组中是否存在某域名

ans =

     0


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇ZOJ 3812 We Need Medicine(牡丹.. 下一篇ZOJ-3811-Untrusted Patrol 解题..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)