【问题标题】:vector unpacking for octave八度的向量解包
【发布时间】:2013-03-01 20:25:29
【问题描述】:

Octave(/matlab) 处理多个返回值的符号

[a, b] = f(x)

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

然而当我把

[a, b] = [1, 2]

我明白了

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

octave 支持向量解包吗?

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

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

【问题讨论】:

  • 当赋值右侧是函数调用时,方括号 ([]) 的含义略有不同。你到底想达到什么目的?
  • 我有两个向量(A 和 B)我想同时迭代。在 python 中,我会在 zip(A,B) 中为 a,b 做://用 a 和 b 做一些事情

标签: matlab octave unpack iterable-unpacking


【解决方案1】:

我没有 Octave 来测试,但在 MATLAB 中,您可以“解压”元胞数组。

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

x1 =
     1
x2 =
     2

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

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

【讨论】:

  • 这也适用于 Octave。谢谢。这么普通的操作还是有点啰嗦
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多