您的位置:首页 > 编程语言 > MATLAB

元胞数组和结构体数组

2015-08-29 18:09 204 查看
1、定义元胞数组几种方法如下:

 方式一:

    a(1,1)={[1 3 5;4 7 9]};
    a(1,2)={'北京'};
    a(2,1)={8};
    a(2,2)={(0:0.01:pi)};
方式二:
    a{1,1}=[1 3 5;4 7 9];
    a{1,2}='北京';
    a{2,1}=8;
    a{2,2}=0:0.01:pi;

方式三:

    a={[1 3 5;4 7 9],'北京';8,0:0.01:pi}

方式四:

    a=[{[1
3 5;4 7 9]},{'北京'};{8},{0:0.01:pi}]

(注意:元胞数组使用圆括号寻访得到的是元胞,而不是内容;使用大括号寻访,则可得到元胞的内容)

2、元胞数组的扩充与收缩,重组

   利用cell函数创建元胞数组:

C=cell(2);
% 预设元胞数组为空
C(:,1)={char('Another','text string');10:-1:1} % 对第一列元胞赋值

元胞数组列扩充和行扩充:

AC=[A C] % 空格(或逗号)利用来分隔列
A_C=[A;C] % 分号利用来分隔“行”
AC =
[2x10 char] [3x3 double] [2x11 char ] []
[1.0000+ 2.0000i] [1x1 sym ] [1x10 double] []
A_C =
[2x10 char ] [3x3 double]
[1.0000+ 2.0000i] [1x1 sym ]
[2x11 char ] []
[1x10 double] []

cellplot 能用图形形象化地表示元胞数组的内容,例:cellplot(A_C,'legend');

元胞数组的收缩和重组

元胞数组的收缩:

A_C(3,:)=[] % 删除第 3 行

把 A_C 重组:

R_A_C=reshape(A_C,2,3)

元胞数组内容的调取:


元胞数组内容的调取示例。

(1)取一个元胞
f1=R_A_C(1,3) % 使用园括号寻访得到的是元胞,而不仅是内容。
class(f1)
f1 =
[1x1 sym]
ans =
cell

(2)取一个元胞的内容
f2=R_A_C{1,3} % 用花括号寻访取得内容
class(f2)
f2 =
sin(-3*t)*exp(-t)
ans =
sym

 

(3)取元胞内的子数组

f3=R_A_C{1,1}(:,[1 2 5 6]) % 注意三种括号的不同用途

% 取第 1 行第 1 列元胞内容中的第 1 、 2 、 5 、 6 列。

f3 =

这是

元胞创建

(4)同时调取多个元胞内容

[f4,f5,f6]=deal(R_A_C{[1,3,4]}) % 取三个元胞内容,赋值给三个变量

f4 =

这是

元胞数组创建算例 1

f5 =

10 9 8 7 6 5 4 3 2 1

f6 =

1 4 7

2 5 8

3 6 9

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab