如前所述(参见索引元胞数组),可以使用 { 和 } 运算符将元胞数组的元素提取为逗号分隔列表。通过用 [ 和 ] 包围此列表,可以将它拼接成一个数组。例如:
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-2026 Octave中文网
ICP备案/许可证号:黑ICP备2024030411号-4