基本思路:遍历元胞访问元胞的每一个元素并判断该元素是不是char类型,如果是则进行相应判断做统计。考虑到cell内部嵌套cell的情况,需要用到递归,所以要把代码写成一个函数。 函数代码如下: function [ n ] = countcell( c,t ) n=0; s=prod(size(c)); for i=1:s if strcmp(class(c{i}),'char') n=n+sum(c{i}==t); elseif strcmp(class(c{i}),'cell') n=n+countcell(c{i},t); end end end
测试代码: %生成一个2×2×2cell,里面填充随机字符串,然后内部嵌套一个2×2×2cell,里面也填充随机字符串 clc;clear; c=cell(2,2,2); for j=1:7 c{j}=char(randi([1,127],1,99)); end d=cell(2,2,2); for j=1:8 d{j}=char(randi([1,127],1,99)); end c{8}=d; n=countcell(c,'6')%统计cell里面有几个‘6’字符并输出