Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

vector unpacking for octave

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

like image 620
dspyz Avatar asked Mar 13 '13 18:03

dspyz


1 Answers

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.

like image 192
yuk Avatar answered Sep 21 '22 18:09

yuk