我想做多变量分配。我可以[a,b] = min([1 2 3])
,但我不能[a,b] = [1,2]
。为什么?有没有解决方法?
答案 0 :(得分:2)
分配右侧的[1,2]
被解释为包含两个元素1
和2
的数组。
如果要在一行中执行多变量赋值,可以在Matlab中使用deal
。根据文档here,这应该适用于Octave。
>> [a,b] = deal(1,2)
a =
1
b =
2
使用deal
的优势在于它也适用于Matlab,而[a b] = {1 2}{:}
的解决方案则不然。
答案 1 :(得分:2)
Octave basics: How to assign variables from a vector
>> [a b c] = {5 6 7}{:}
a = 5
b = 6
c = 7
答案 2 :(得分:0)
为了使Cobusve的答案适应Matlab,需要两行:
>> h={5 6 7}
h =
[5] [6] [7]
>> [a b c]=h{:}
a =
5
b =
6
c =
7