vector unpacking for octave

此生再无相见时 提交于 2019-12-30 18:27:52

问题


Octave(/matlab)'s notation for handling multiple return values

[a, b] = f(x)

suggests that the values returned by f(x) are in a sort of row vector and that Octave supports vector unpacking (like Python's tuple-unpacking).

Yet when I put

[a, b] = [1, 2]

I get

error: invalid number of output arguments for constant expression

Does octave support vector-unpacking?

If so, what's the proper notation?

I can't find anything in the documentation


回答1:


I don't have Octave to test, but in MATLAB you can "unpack" cell arrays.

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

x1 =
     1
x2 =
     2

You can convert numerical vector to a cell array as x = num2cell([1 2]);.

I have to add that this works for MATLAB starting from version 7.0. For earlier version you have to use DEAL function.



来源:https://stackoverflow.com/questions/15393161/vector-unpacking-for-octave

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!