Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab:唯一函数的行为_Matlab - Fatal编程技术网

Matlab:唯一函数的行为

Matlab:唯一函数的行为,matlab,Matlab,我目前正在将代码从R2012a迁移到R2013b 我注意到独特的函数行为发生了变化: R2012a >> size(unique([])) ans = 0 0 R2013b >> size(unique([])) ans = 0 1 在我看来,0x0矩阵在删除doublons后会变成0x1矩阵,这似乎与直觉相反,这本质上就是unique函数所做的。有人对此有什么理由吗?如果您需要旧的行为使用,R2013a的行为已经改变: s

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

我注意到
独特的
函数行为发生了变化:

R2012a

>> size(unique([]))

ans =

     0     0
R2013b

>> size(unique([]))

ans =

     0     1

在我看来,0x0矩阵在删除doublons后会变成0x1矩阵,这似乎与直觉相反,这本质上就是unique函数所做的。有人对此有什么理由吗?

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

size(唯一([],'legacy'))

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


顺便说一句:
union
intersect
setdiff
setxor
ismember
也存在同样的问题,我不知道这是否是原因,但它确实具有优势

现在您将看到
unique(M)
提供与
unique(M(:)
相同的输出,即使
M
为空

例如:

M = magic(5);
isequal(size(unique(M)), size(unique(M(:)))); 
M = [];
isequal(size(unique(M)), size(unique(M(:)))); 

后者在旧版本的matlab上返回false,这可能会让人困惑。

这可能是相关的:这里是,展开所有2013a并搜索
unique
@DennisJaheruddin我查看了发行说明,找不到相关内容。我瞎了吗?好吧,在“数学”下找到的。有道理。