元胞数组

知乎来的:https://zhuanlan.zhihu.com/p/25401241  自己再加了些平时学习程序里面的元胞

 

元胞数组

矩阵只适合存放和处理若干相同类型的数据,要想同时存放和处理多种类型的数据就需要用元胞数组。

1. 元胞数组的创建

用“{ }”来创建,以区别创建矩阵的“[ ]”


  (1) 赋值语句创建

a = {'hello' [1 2 3; 4 5 6]; 1 {'1' '2'}}  
%创建2×2的元胞数组,
%同行元素间用“, 或空格”隔开
%行与行间用“;”隔开
%第1行第1列的元胞,存放字符串'hello';
%第1行第2列的元胞,存放一个2×3矩阵
%第2行第1列的元胞,存放数 1
%第2行第2列的元胞,存放1×2元胞数组

运行结果:a = 'hello' [2x3 double]

[ 1] { 1x2 cell }

(2) 对元胞数组各元胞一一赋值
例如(1)中的元胞数组a也可以这样创建:

a{1,1} = 'hello';
a{1,2} = [1 2 3; 4 5 6];
a{2,1} = 1;
a{2,2} =  {'1' '2'};

(3) 用cell( )函数创建

a = cell(2,3)      % 生成2×3的空元胞数组

此时, a = [] [] []
                 [] [] []

再赋值或操作。

2. 元胞数组元胞的访问

a{i, j}——返回第i行第j列元胞的数据内容。比如,对前例中的元胞数组a,有

a{1,2} = 1 2 3

4 5 6

a(i,j)——返回第i行第j列的元胞外观。比如,a(1,2) = [2x3 double]

3. 元胞数组的操作(函数)

a(i,:) = []; ——删除a的第i行

iscell(a) ——判断a是否是元胞数组,返回逻辑值1或0;

celldisp(a)——显示元胞数组a中各元胞的内容;

celldisp(a,’cell1’)——显示元胞数组a中各元胞的内容,用“cell1”代替元胞数组名“a”;

cellplot(a)——以图形化的方式显示元胞数组a的内容.

cellfun(fun,a)——将函数fun分别做用在元胞数组a的每个元素上。

 

然后自己学习中遇到的:

O{50,50} = [O{50,50} 2];

其实O是一个200*200的元胞数组,像这样:=[] [] [] [] ... []

                                                                        . . . . . . .  . .

                                                                         [] [] [] [] ...[]

上述程序描述O中(50,50)位置上的值用2代替

赋值时必须使用大括号

但是赋值也可以  O{50,50} =2;  这样写,目前没有找到两个的差异。有懂的同学可以指导一下:)

我找到上面两个的差异了,如果坐标位置和所赋的值是变量,在循环结束后,O{i,j} = [O{i,j} k];  它会存储下该位置上的所有赋过的值,而O{50,50} =2; 不会

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值