如上所述(详见索引元胞数组),可以使用将元胞数组的元素提取到逗号分隔的列表中{和}运算符。通过用包围此列表[和],它可以连接到一个数组中。例如
a = {1, [2, 3], 4, 5, 6};
b = [a{1:4}]
⇒ b =
1 2 3 4 5
类似地,可以创建一个新的元胞数组,其中包含用{}。通过用'包围列表{和}将创建一个新的元胞数组,如下例所示:
a = {1, rand(2, 2), "three"};
b = { a{ [1, 3] } }
⇒ b =
{
[1,1] = 1
[1,2] = three
}
此外,单元元素(通过访问{})可以直接传递给函数。元胞数组中的元素列表将作为参数列表传递给给定的函数,就好像它是从元素作为单独的参数调用的一样。两个呼叫printf在以下示例中是相同的,但后者更简单并且可以处理任意大小的元胞数组:
c = {"GNU", "Octave", "is", "Free", "Software"};
printf ("%s ", c{1}, c{2}, c{3}, c{4}, c{5});
-| GNU Octave is Free Software
printf ("%s ", c{:});
-| GNU Octave is Free Software
如果在赋值的左侧使用,则使用生成逗号分隔的列表{}可以赋值给。例如
in{1} = [10, 20, 30];
in{2} = inf;
in{3} = "last";
in{4} = "first";
out = cell (4, 1);
[out{1:3}] = in{1 : 3};
[out{4:6}] = in{[1, 2, 4]})
⇒ out =
{
[1,1] =
10 20 30
[2,1] = Inf
[3,1] = last
[4,1] =
10 20 30
[5,1] = Inf
[6,1] = first
}
版权所有 © 2024-2025 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-2