矢量拆包八度

时间:2013-03-13 18:08:48

标签: matlab octave unpack iterable-unpacking

Octave(/ matlab)用于处理多个返回值的表示法

[a, b] = f(x)

表明f(x)返回的值是一种行向量,而Octave支持向量解包(比如Python的元组解包)。

然而,当我把

[a, b] = [1, 2]

我得到了

  

错误:常量表达式的输出参数数量无效

octave是否支持vector-unpacking?

如果是这样,那么正确的符号是什么?

我在文档中找不到任何内容

1 个答案:

答案 0 :(得分:6)

我没有测试Octave,但是在MATLAB中你可以“解包”单元阵列。

x = {1 2};
[x1,x2] = x{:}

x1 =
     1
x2 =
     2

您可以将数字向量转换为单元格数组x = num2cell([1 2]);

我必须补充一点,这适用于从7.0版开始的MATLAB。对于早期版本,您必须使用DEAL函数。