Octave(/ matlab)用于处理多个返回值的表示法
[a, b] = f(x)
表明f(x)返回的值是一种行向量,而Octave支持向量解包(比如Python的元组解包)。
然而,当我把
[a, b] = [1, 2]
我得到了
错误:常量表达式的输出参数数量无效
octave是否支持vector-unpacking?
如果是这样,那么正确的符号是什么?
我在文档中找不到任何内容
答案 0 :(得分:6)
我没有测试Octave,但是在MATLAB中你可以“解包”单元阵列。
x = {1 2};
[x1,x2] = x{:}
x1 =
1
x2 =
2
您可以将数字向量转换为单元格数组x = num2cell([1 2]);
。
我必须补充一点,这适用于从7.0版开始的MATLAB。对于早期版本,您必须使用DEAL函数。