matlab 中的元胞数组如何实现批量的赋值呢
元胞数组是 MATLAB 的一种特殊数据类型,可以将元胞数组看做一种
无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任
何一种数据类型的 常数或者常量,每一个元素也可以具有不同的尺寸和
内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素
叫做元胞(cell)。和一般的数值 矩阵一样,元胞数组的内存空间也是动
态分配的。
(1)元胞数组的创建>>a={'matlab',20;ones(2,3),1:10}a
='matlab' [ 20][2x3 double] [1x10
double]>>b=[{'matlab'},{20};{ones(2,3)},{1:10}]b
='matlab' [ 20][2x3 double] [1x10 double]>>c={10}c
=[10]>>c(1,2)={2}c =[10] [2]>>c(2,2)={5}c =[10] [2][]
[5]>>isequal(a,b)ans =1>>whosName Size Bytes Class
Attributesa 2x2 388 cell ans 1x1 1 logical b 2x2 388 cell c 2x2
208 cell 用 cell 函数创建元胞数组,创建的数组为空元胞。cell 函数创
建空元胞数组的主要目的是为数组预先分配连续的存储空间,节约内存占
用,提高执行效率。 >>a=cell
(1)a ={[]}>>b=cell(1,2)b =[] []>>c=cell(3,3)c =[] [] [][]
[] [][] [] []>>d=cell(2,2,2)d(:,:,1) =[] [][] []d(:,:,2) =[] [][]
[]>>whosName Size Bytes Class Attributesa 1x1 4 cell ans 1x1
1 logical b 1x2 8 cell c 3x3 36 cell d 2x2x2 32 cell
(2)元胞数组的数据获得从元胞数组中读取数据,可保存为一个标准的
数组或一个新的单元数组,或取出数组进行计算。元胞数组中数据的访问,
可通过元胞内容的下标进行,用元胞数组名加大括号{}。大括号中数值
表示元胞的下标。如 a{1,2}表示元胞数组中第一行第二列的元
胞。>>a={20,'matlab';ones(2,3),1:3}a =[ 20] 'matlab'[2x3
double] [1x3 double]>>str=a(1,2)str ='matlab'>>class(str)ans
=cell>>str=a{1,2}str =matlab>>class(str)ans =char()和{}有
着本质的区别,大括号用于表示元胞的内容,小括号表示指定的元胞。a
=[ 20] 'matlab'[2x3 double] [1x3 double]>>a{2,1}(2,2)ans
=0.9134>>a{2,1}(2,3)ans =0.0975>>a{1,2}