问题
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