在一个数组中添加不同大小的数组
Add differently sized arrays in one array
我想在一个列表中放入多个大小可能不同的数组。例如数组
A
尺寸 [300 x 3]
、
B
大小 [250 x 3]
,
C
大小 [450 x 3]
。
我想在一个列表中包含 A
、B
和 C
,然后如果我访问列表的第一个元素,它将 return 给我 A
大小为 [300 x 3]
.
我会为您的 "list" 创建一个结构。在下面的示例中,我做了一个包含两个元素的结构,每个元素的 A、B 和 C 都带有一些数据:
% first element of struct
mystruct(1).A = ones(300,3);
mystruct(1).B = ones(250,3);
mystruct(1).C = ones(450,3);
% second element of struct with different data
mystruct(2).A = ones(300,3) + 1;
mystruct(2).B = ones(250,3) + 2;
mystruct(2).C = ones(450,3) + 3;
它 "looks" 像:
1x2 mystruct =
1x2 struct array containing the fields:
A
B
C
matlab / octave 为此目的使用所谓的 "cell-arrays"。
语法类似于数组,除了您使用 'braces' ({}
) 而不是 'brackets' ([]
).
例如
octave:1> a = [1,2,3], b = [1,2], c = [1,2,3,4]
a = 1 2 3
b = 1 2
c = 1 2 3 4
octave:2> d = {a, b, c}
d = {
[1,1] = 1 2 3
[1,2] = 1 2
[1,3] = 1 2 3 4
}
类似地,对 'index' 元胞数组使用大括号并得到它的 contents:
octave:3> d{1}
ans = 1 2 3
注意:您 可以 也可以像使用括号(即 ()
)的普通数组一样对其进行索引,但这 returns 个人 cells 本身(即以单元格数组形式)而不是它们的 contents:
octave:4> d(1)
ans = {
[1,1] = 1 2 3
}
本质上,'normal'(例如 'numerical')数组和 'cell-arrays' 之间的 'big' 区别是 'normal' 数组必须始终包含相同类型的元素,而在元胞数组中,每个元素可以是任何元素(包括另一个元胞数组)。
我想在一个列表中放入多个大小可能不同的数组。例如数组
A
尺寸[300 x 3]
、B
大小[250 x 3]
,C
大小[450 x 3]
。
我想在一个列表中包含 A
、B
和 C
,然后如果我访问列表的第一个元素,它将 return 给我 A
大小为 [300 x 3]
.
我会为您的 "list" 创建一个结构。在下面的示例中,我做了一个包含两个元素的结构,每个元素的 A、B 和 C 都带有一些数据:
% first element of struct
mystruct(1).A = ones(300,3);
mystruct(1).B = ones(250,3);
mystruct(1).C = ones(450,3);
% second element of struct with different data
mystruct(2).A = ones(300,3) + 1;
mystruct(2).B = ones(250,3) + 2;
mystruct(2).C = ones(450,3) + 3;
它 "looks" 像:
1x2 mystruct =
1x2 struct array containing the fields:
A
B
C
matlab / octave 为此目的使用所谓的 "cell-arrays"。
语法类似于数组,除了您使用 'braces' ({}
) 而不是 'brackets' ([]
).
例如
octave:1> a = [1,2,3], b = [1,2], c = [1,2,3,4]
a = 1 2 3
b = 1 2
c = 1 2 3 4
octave:2> d = {a, b, c}
d = {
[1,1] = 1 2 3
[1,2] = 1 2
[1,3] = 1 2 3 4
}
类似地,对 'index' 元胞数组使用大括号并得到它的 contents:
octave:3> d{1}
ans = 1 2 3
注意:您 可以 也可以像使用括号(即 ()
)的普通数组一样对其进行索引,但这 returns 个人 cells 本身(即以单元格数组形式)而不是它们的 contents:
octave:4> d(1)
ans = {
[1,1] = 1 2 3
}
本质上,'normal'(例如 'numerical')数组和 'cell-arrays' 之间的 'big' 区别是 'normal' 数组必须始终包含相同类型的元素,而在元胞数组中,每个元素可以是任何元素(包括另一个元胞数组)。