gpt4 book ai didi

matlab - 计算单元格数组中所有元素的最佳方法?

转载 作者:太空宇宙 更新时间:2023-11-03 19:32:29 25 4
gpt4 key购买 nike

我想计算单元格数组中的所有元素,包括“嵌套”单元格中的元素。

对于元胞数组

>> C = {{{1,2},{3,4,5}},{{{6},{7},{8}},{9}},10}

C = {1x2 cell} {1x2 cell} [10]

答案应该是10

一种方法是重复使用 [C{:}] 直到没有剩余的单元格,然后使用 numel 但一定有更好的方法吗?

最佳答案

因为您只对元素数量感兴趣,这里是flatten.m 的简化版本那@Ansari链接到:

function n = my_numel(A)
n = 0;
for i=1:numel(A)
if iscell(A{i})
n = n + my_numel(A{i});
else
n = n + numel(A{i});
end
end
end

结果:

>> C = {{{1,2},{3,4,5}},{{{6},{7},{8}},{9}},10};
>> my_numel(C)
ans =
10

编辑:

如果你觉得懒惰,我们可以让CELLPLOT进行计数:

hFig = figure('Visible','off');
num = numel( findobj(cellplot(C),'type','text') );
close(hFig)

基本上我们创建一个不可见的图形,绘制元胞数组,计算创建了多少“文本”对象,然后删除不可见的图形。

下面是情节的样子:

screenshot

关于matlab - 计算单元格数组中所有元素的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11308366/

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