MATLAB中的“安全”分配

时间:2013-12-01 09:24:15

标签: python matlab

我注意到在python代码中你可以做类似的事情:

a=0
b=1
a,b=b,a
print(a,b)

输出(a = 1,b = 0)(即每个变量的分配与最后一次分配无关)。有没有办法在MATLAB中做类似的事情?

很抱歉,如果这是一个非常简单的问题,但我一直试图找到一个干净的答案,现在有一段时间没找到。

2 个答案:

答案 0 :(得分:5)

这里不需要额外的临时变量。如果您想在一个语句中进行多项分配,可以使用deal

[a, b] = deal(b, a)

我相信这就是你要找的东西。

答案 1 :(得分:2)

使用任何语言的临时变量始终可以做到这一点。 Python的解包方法只是简化开发人员生活的一点点语法糖:)

a = 0
b = 1
tmp = a
a = b
b = tmp
print(a,b)

无论如何,它并不神奇,Python字节代码可能会使用临时变量实现排列。 (有没有临时变量的技术,但是为了清楚起见,使用一个:p)