6.4.1从元胞数组生成的逗号分隔列表

如上所述(详见索引元胞数组),可以使用将元胞数组的元素提取到逗号分隔的列表中{}运算符。通过用包围此列表[],它可以连接到一个数组中。例如

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