gpt4 book ai didi

matlab - 如何删除单元格数组中的重复条目(当这些条目是2x2矩阵时)(Matlab)

转载 作者:行者123 更新时间:2023-12-02 04:03:50 24 4
gpt4 key购买 nike

有没有很好的功能可以删除单元格数组中的重复条目?

一些谷歌搜索抛出了函数“唯一”,但似乎只有在数组的所有条目都是字符串的情况下才起作用。我的是2x2矩阵。

谢谢

最佳答案

我使用了CELLFUNCELL2MATUNIQUE的组合。想法是将每个矩阵转换为 vector ,将这些单元格数组转换为矩阵并应用唯一,结果可以使用NUM2CELL转换回单元格数组。

x = {[1 2; 3 4], [1 2; 3 4], [5 6; 7 8], [1 2; 3 4], [5 6; 7 8]}';
x1 = cellfun(@(y)y(:)', x, 'UniformOutput',0);
x2 = cell2mat(x1);
x3 = unique(x2,'rows');
x4 = num2cell(x3,2);
x5 = cellfun(@(y) reshape(y,2,2), x4, 'UniformOutput',0);

大概可以用更少的步骤来完成。

重要的是要记住,只有所有单元格数组元素都具有相同的大小,此代码才有效。

您可以通过以下方式检查这种情况
assert(size(unique(cell2mat(cellfun(@size,x,'UniformOutput',0))),1) == 1,...
'Cell elements have different size')

关于matlab - 如何删除单元格数组中的重复条目(当这些条目是2x2矩阵时)(Matlab),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8734138/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com