cell数组

 问题:

(注意,matlab判断一个数的类型的函数是class(var))

如果p为一个数,那么h(1)=p,是没有问题的。

如果p为一个向量,那么h(1,:)=p是没有问题的。

如果p是一个矩阵的话,上面的两种赋值方法都是会有错误的。

那么要如何处理呢 ????

这时就用到了cell数据类型了。cell的每个单元都可以存储任何数据,比如传递函数等。当然,存储矩阵更是没有问题的了。但是用cell数据类型之前,要先初始化。

1、细胞型数据的定义

1)直接赋值定义:细胞型变量在定义时需要使用大括号,元素用都好隔开

例: B =
{1:4,A,‘abcd’}

2)使用cell函数,预先为细胞型变量定义空间

例: A = cell(m,n)
定义一个空的m行n列的cell类型

2、细胞型数据的访问

1)对细胞型变量元素的引用应当采用大括号作为下标的标示,用小括号作为下标标示时,将只显示该元素的压缩形式。

比如:

A = {1:4,2.5,‘abc’};
>> A

A =

[1x4 double] [2.5000] ‘abc‘

>> A(1,1)

ans =

[1x4 double]
>>  A{1,1}

ans =

1 2 3 4
>> A(1,2)

ans =

[2.5000]

>> A{1,2}

ans =

2.5000
>>  A(1,3)

ans =

‘abc‘
>> A{1,3}

ans =

abc
>> A{1,1}(2)

ans =

2

2 ) 改变cell类型元素的值

>> A{1,2} = 3:4
A =
[1x4 double] [1x2 double] ‘abc‘
>>  A{1,2}
ans =
3 4

3)删除cell中的元素,需要用A(1)=[],若使用A{1}=[]只能将该元素置空不能删除

>> A
A =

[1x4 double] [1x2 double] ‘abc‘

>> A(2) =  []
A =

[1x4 double] ‘abc‘

>> A{2} = []
A =

[1x4 double] []

4) cell函数

cellplot(A)

cell(m,n) 创建一个m行n列的细胞型变量

cellfun(‘fun’,A)
对细胞型变量A作用fun函数,fun可以为isreal,isempty,length,islogical,ndims等
celldisp(A) 完全显示细胞型变量的内容
cellplot(A)
用图形显示细胞型变量的内容
num2cell
将数值数组转换为细胞型变量
deal
输入输出处理
cell2struct
将细胞型变量转换为结构型变量
struct2cell
将结构型变量转换为细胞型变量
iscell
判断是否为细胞型变量
reshape
改变细胞型数组的结构

注意事项:

names={‘s1‘};     %或  names=cell(1, 1); 
names{1} = ‘s1‘;
names={names{1,:}, ‘s2‘}; %在字符串数组后面append一个字符串。
names={names{1,:}, ‘s3‘};      %在字符串数组后面append一个字符串。
% 这时names是一个1x3的字符串数组,若要变成3x1的数组,可以:
names = names‘;

时间: 2024-08-09 10:39:14

cell数组的相关文章

MATLAB cell 数组介绍

转载:http://www.matlabsky.com/forum.php?mod=viewthread&tid=21089 由于工作需要,经常要处理大量的实验数据.基本都是由仪器导出来,随着社会发展的进步,人们获取数据的量在不断增长,很多人都是,现在已经是海量数据时代了... 从cell使用说起在读取文件的时候,cell数组(各种翻译都有,元胞数组,单元数组...直接无视)是Matlab的宠儿,基本都会出现,长期使用发现频率比struct高了不少~无论是Import Data还是使用texts

matlab cell数组用法

元胞数组: 元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵.组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell).和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的. (1)元胞数组的创建 >> a={'matlab',20;ones(2,3),1:10} a = 'matlab'        [         2

oop_day03_内存管理、引用类型数组

--20150811 1.内存管理:由JVM来分配并管理------了解为主 1)堆: 1.1)用于存储new出来的对象(包括成员变量) 1.2)成员变量的生命周期: 创建对象时存在,对象被回收时消失 1.3)垃圾回收器(GC)用于回收没有任何引用指向的对象 1.4)GC不定期回收,而回收的过程中透明的 若想快一些,调用System.gc() 1.5)内存泄露:不再使用的对象没有被及时的回收 建议:不再使用的对象将其引用及时的设置为null 内存图:    2)栈: 2.1)用于存储所有的局部变

matlab cell

cell元包是matlab中提供的一种数据类型,功能强大. 关于cell的创建: 1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}"{}" 2.使用cell创建cell,C= {C1 C2},这里C1和C2都是cell类型,直接把C1 C2作为一个cell得到的C3是一个1x2的cell数组:使用C3 = [C1 C2],是使用C1和C2的内容来创建cell数组 3.使用cell函数,A=cell(2,2),创建一个空的

iOS_25_彩票设置的cell的数据源模型的封装

组模型的封装 SettingGroup // // SettingGroup.h // 25_彩票 // // Created by beyond on 14-8-28. // Copyright (c) 2014年 com.beyond. All rights reserved. // 模型,一组(Section,Group),包括 组的header,组的footer,中间的条目(cell数组) #import <Foundation/Foundation.h> @interface Set

matlab中cell介绍

1. matlab中cell的概念 cell又称元包,是一个类似矩阵的东西,它可以存放任何类型的数据,即矩阵.字符串.数值类: 2. cell的创建 创建cell的方法:直接使用C={A,B,E,D}这种形式,不过这里把“[]”改成了“{}”; 使用cell创建cell:C={C1,C2},这里C1和C2都是cell类型,直接把C1.C2作为一个cell得到C3是一个1*2的cell数组:使用C3 =[C1 C2],是使用C1和C2的内容来创建cell数组; 使用cell函数,A=cell(2,

cell自动换行

cell自动换行 #import "HistoryMessageViewController.h" #import "UITableView+FDTemplateLayoutCell.h" #import "HistoryMessageCell.h" #define FONT_SIZE 14.0f #define CELL_CONTENT_WIDTH 320.0f #define CELL_CONTENT_MARGIN 10.0f #define

MATLAB中cell函数用法

cell元包是matlab中提供的一种数据类型,功能强大. 关于cell的创建: 1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}"{}" 2.使用cell创建cell,C= {C1 C2},这里C1和C2都是cell类型,直接把C1 C2作为一个cell得到的C3是一个1x2的cell数组:使用C3 = [C1 C2],是使用C1和C2的内容来创建cell数组 3.使用cell函数,A=cell(2,2),创建一个空的

cell转为字符串

如果s是一个cell如下: s = 3×1 cell 数组 'j' '北jing' [ NaN] s(2)返回cell类型,s{2}返回string类型 >> s(2) ans = cell '北jing' >> s{2} ans = 北jing 原文地址:https://www.cnblogs.com/litthorse/p/9280660.html