Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.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
Arrays 如何在矩阵中找到唯一的行,而每行中没有元素顺序?_Arrays_Matlab_Unique - Fatal编程技术网

Arrays 如何在矩阵中找到唯一的行,而每行中没有元素顺序?

Arrays 如何在矩阵中找到唯一的行,而每行中没有元素顺序?,arrays,matlab,unique,Arrays,Matlab,Unique,我有一个由n行和4列组成的数组。行上的四个条目都是整数,即 X = [ 111 112 432 2 6 9 115 111 112 432 111 2 ]; 每行代表一个四面体的顶点。这些顶点没有方向性,因此,在上述情况下,由X(1,:)和X(3,:)表示的四面体是等效的 我希望从X中删除重复的四面体,但不太清楚如何将顺序独立性合并到我的代码中 我尝试了UNIQUE()函数,但它返回一个(nx1)唯一整数数组,即 Y = U

我有一个由n行和4列组成的数组。行上的四个条目都是整数,即

X = [
       111 112 432   2
         6   9 115 111
       112 432 111   2

    ]; 
每行代表一个四面体的顶点。这些顶点没有方向性,因此,在上述情况下,由X(1,:)和X(3,:)表示的四面体是等效的

我希望从X中删除重复的四面体,但不太清楚如何将顺序独立性合并到我的代码中

我尝试了UNIQUE()函数,但它返回一个(nx1)唯一整数数组,即

Y = UNIQUE(X);

Y = [
     2
     6
     9
     111
     112
     115
     432
    ]
有人对合理有效地完成这项任务有什么建议吗

谢谢,
S:-)

引用文档:

b=unique(A,‘行’)返回 A的唯一行


这就是你想要的吗?

首先,对矩阵的行进行排序,以得到四面体的“规范”表示:

X = sort(X, 2);
然后,将
unique
与可选的
'rows'
参数一起使用,以查找唯一的行:

Y = unique(X, 'rows');

您应该首先对行进行排序,然后使用unique(A,'rows'),正如HPM所建议的那样,

unique()将用于行,但第1行和第3行的顺序不同。因此,我们可以在使用unique之前对它们进行排序

Y=unique(sort(X,2),'rows')

Y =

     2   111   112   432
     6     9   111   115
如果要保留原始顺序,则unique将返回索引

[Y,yi]=unique(sort(X,2),'rows');

>> X(yi,:)

ans =

   112   432   111     2
     6     9   115   111