2015-08-08 26 views
0

我想做多變量賦值。我可以做[a,b] = min([1 2 3])但我不能做[a,b] = [1,2]。爲什麼?有什麼解決方法嗎?如何在八度中進行多變量賦值?

+0

示例本PAQ http://stackoverflow.com/questions/9908398/ octave-basics-how-to-assign-variables-from-a-vector – Cobusve

+0

請考慮刪除Matlab標籤,因爲接受的答案在那裏不起作用。我使用'deal'的答案可以在Octave和Matlab中完成這項工作。 – Matt

回答

2

作業右側的[1,2]被解釋爲具有兩個元素12的數組。

如果要在一行中執行多變量賦值,可以在Matlab中使用deal。根據文檔here,這應該在Octave中工作。

>> [a,b] = deal(1,2) 
a = 
    1 
b = 
    2 

使用deal的優點是,它在Matlab工程,以及,凡與[a b] = {1 2}{:}解決方案不會。

0

適應Cobusve的答案Matlab的,需要兩行:

>> h={5 6 7} 

h = 

    [5] [6] [7] 

>> [a b c]=h{:} 

a = 

    5 


b = 

    6 


c = 

    7