Arrays 在单元格数组中放置相等的元素
我有一个数组。我对它进行了排序,所以我对数组和初始数组中已排序元素的索引进行了排序 例如,从Arrays 在单元格数组中放置相等的元素,arrays,matlab,sorting,cell-array,Arrays,Matlab,Sorting,Cell Array,我有一个数组。我对它进行了排序,所以我对数组和初始数组中已排序元素的索引进行了排序 例如,从[4544454]我得到了[44445]和[143456827] 如何在单元格数组中放置接收的索引,以便在一个单元格中有相等元素的索引?例如,它将是:{1 3 4 5 6 8},{2 7} 我正在寻找非循环方法来解决它。使用: 或者,如果需要对每组索引进行排序: result = accumarray(jj(:), 1:numel(x), [], @(v) {sort(v(:)).'}); 有个问题-a
[4544454]
我得到了[44445]
和[143456827]
如何在单元格数组中放置接收的索引,以便在一个单元格中有相等元素的索引?例如,它将是:{1 3 4 5 6 8}
,{2 7}
我正在寻找非循环方法来解决它。使用:
或者,如果需要对每组索引进行排序:
result = accumarray(jj(:), 1:numel(x), [], @(v) {sort(v(:)).'});
有个问题-accumarray中没有循环吗?@Divakar问得好。我不知道。如果是这样,我也不会感到惊讶(与
arrayfun
etc是伪装的循环的意义相同)。但它非常有用,我不介意:-)我认为它有循环,但这些函数是隐藏循环的好“包装器”。另外,在这种特殊情况下,我认为矢量化是不可能的。我认为,与光线一起工作会带来这些限制+1.BTW@Divakar谢谢是的,细胞阵列不适合矢量化
result = accumarray(jj(:), 1:numel(x), [], @(v) {sort(v(:)).'});