在xlsx matlab中有多少名称超过10个字符

时间:2014-05-26 16:54:42

标签: matlab

xlsx matlab中有多少个元素的名称长度超过10个字符? 我试过这个。

[number cities] = xlsread('weather.xlsx', 'city')
if cities{1}<=char(10); 
    x+1=x;

1 个答案:

答案 0 :(得分:1)

上面的代码仅检查第一个城市是否少于10个字符。此外,char(10)没有任何意义。您正在检查cities{1}中包含的字符串是否小于或等于包含10的字符数组。

因为cities位于单元格数组中,所以我会先使用cellfun返回每个城市的长度。然后,您可以使用sum和布尔条件来帮助您确定有多少10个字符的数量。

因此,这里是代码:

A = cellfun(@length, cities);
numCitiesMoreThan10 = sum(A > 10);

这是一个例子(模拟):

cities = {'New York', 'Los Angeles', 'Toronto', 'Ottawa', 'Sydney', 'Melbourne', ...
          'Timbuktu', 'Singapore', 'Mississippi'};

A = cellfun(@length, cities);
numCitiesMoreThan10 = sum(A > 10);

>> numCitiesMoreThan10 = 

   2

这是有道理的,因为只有两个超过10个字符(包括空格)的城市是洛杉矶和密西西比州。

除了

刚刚了解到cellfun内置了一些可以做到这一点。你也可以这样做:

A = cellfun('size', cities, 2);

这将访问单元格数组中的每个元素(cities),并使用cellfun参数调用size的最后一个参数中指定的任何维度的大小。您还可以将多个单元阵列链接在一​​起。您选择第三个参数2的原因是因为单元格数组中的每个字符串都是1 x N数组。因此,我们需要读取有多少列,这样就相当于每个字符串的长度。