可以使用sum和mean等统计函数对元胞数组或列表中的元素进行计算。[大谦MATLAB,dqmatlab点com]
【MATLAB】
使用索引获取元胞后,可以用函数对它进行处理。
下面创建元胞数组A,通过索引获取第1行第1列的元胞并使用sum函数计算该元胞中各列元素的和。
code.matlab
>> A{1,1}=[1 2; 3 4]; %创建元胞数组A
>> A{1,2}=randn(3,3);
>> A{1,3}=1:5;
>> B=sum(A{1,1}) %计算元胞A{1,1}各列元素的和
B =
4 6
【Python】
使用max, min和sum等函数可以直接求取列表元素的最大值、最小值和累加和。下面创建一个列表,元素为数字0-10,对它们进行简单统计计算。
code.python
>>> a=range(11)
>>> max(a) #最大值
10
>>> min(a) #最小值
0
>>> sum(a) #和
55
另一种常见方法是使用NumPy包提供的统计分析函数进行计算。NumPy包是专门为数组计算设计的,具有功能函数多、计算速度快等特点。8.4节详细介绍NumPy包和NumPy数组,请参阅。
code.python
>>> import numpy as np #导入NumPy包
>>> a=range(11)
>>> np.amax(a) #最大值
10
>>> np.amin(a) #最小值
0
>>> np.sum(a) #和
55
>>> np.mean(a) #均值
5.0
>>> np.median(a) #中值
5.0
二维数组
如果元胞数组中至少有一个元素为元胞数组,称其为二维元胞数组;如果列表中至少有一个元素为列表,称其为二维列表。
【MATLAB】
元胞数组的元胞可以包含另一个元胞数组,或者以元胞数组为元素的数组。
下面使用{}创建一个嵌套的元胞数组。在命令窗口中输入:
code.matlab
>> clear A
>> A(1,1)={magic(5)};
>> A(1,2)={{[5 2 8; 7 3 0; 6 7 3] 'Test 1'; [2-4i 5+7i] {17 []}}}
A=
[5x5 double] {2x2 cell}
【Python】
可以通过列表嵌套创建二维或多维列表。二维列表有两层中括号,即列表的元素也是列表。下面创建一个二维列表:
code.python
>>> a=[[1,2,3],[4,5,6],[7,8,9]]
>>> a
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
对二维列表进行索引和切片时,要指定行维和列维两个方向上的索引号或取值范围。注意基数为0。
下面获取二维列表中第2行第3列元素的值:
code.python
>>> a[1][2]
6
对于二维列表的切片,我们首先要明白a[1]和a[1:2]之间的区别。a[1]获取的是二维列表a中的第2个元素,是一个一维列表,如下所示:
code.python
>>> a[1]
[4, 5, 6]
a[1:2]获取的则是一个二维列表,即
code.python
>>> a[1:2]
[[4, 5, 6]]
然后就比较好理解下面的结果:
code.python
>>> a[1][0]
4
>>> a[1:2][0]
[4, 5, 6]
以及
code.python
>>> a[1][0:1]
[4]
>>> a[1:2][0:1]
[[4, 5, 6]]
反复比较和理解这之间的差别。