Matlab:独特功能的行为

Eri*_*emi 6 matlab

我目前正在将代码从R2012a迁移到R2013b.

我注意到unique函数行为已经改变:

R2012a

>> size(unique([]))

ans =

     0     0
Run Code Online (Sandbox Code Playgroud)

R2013b

>> size(unique([]))

ans =

     0     1
Run Code Online (Sandbox Code Playgroud)

对我来说,在删除双重后,0x0矩阵将成为0x1矩阵似乎是违反直觉的,这实际上是唯一函数的作用.有没有人有理由这样做?

Dan*_*iel 7

如果您需要使用旧行为,则R2013a的行为已更改:

size(unique([],'legacy'))

如果您需要两个版本的代码,我建议编写一些函数来调用 unique(x,'legacy')新版本和unique(x)旧版本.

BTW:同样的问题有union,intersect,setdiff,setxorismember