作业帮 > 综合 > 作业

matlab中如何找出不同维度矩阵的相同数组

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/04/28 08:18:43
matlab中如何找出不同维度矩阵的相同数组

如图所示,AA(i)的维度不同,每个元素里是不同的数组.需要找出所有AA里都有的元素,例如(7,8),将(7,8)存入新的数组中去
上图易误解,见下图
matlab中如何找出不同维度矩阵的相同数组
你说的【下图】在哪里?
再问: 如图
再答: 参考代码:AA{1} = { [1 2]; [2 3]; [7 8]; [1 5]; [3 2] };
AA{2} = { [7 8]; [6 2]; [8 1] };
AA{3} = { [4 5]; [1 1]; [2 8]; [7 8] };
AA{4} = { [1 4]; [7 8] };
AA{5} = { [2 4]; [2 3]; [7 8] };

[n,n]=min(cellfun(@(c)length(c),AA));
for ii=1:length(AA{n})
    if all(cellfun(@(AAi)any(cellfun(@(c)isequal(AA{n}{ii},c),AAi)), AA))
        disp(AA{n}{ii})
    end
end基本思路是,取AA数组中最短的那个单元,对其每个元素判断是否存在于其它单元中。如果满足条件,就用disp显示出来(当然,你可以改成保存到其它数组)。 也可以再加一层cellfun,避免显式循环:ndx = cellfun(@(a)all(cellfun(@(AAi)any(cellfun(@(c)isequal(a,c),AAi)), AA)),AA{n});
disp(AA{n}{ndx})
再问: ok,谢啦