xlsx matlab中有多少个元素的名称长度超过10个字符? 我试过这个。
[number cities] = xlsread('weather.xlsx', 'city')
if cities{1}<=char(10);
x+1=x;
答案 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
数组。因此,我们需要读取有多少列,这样就相当于每个字符串的长度。