Matlab:如何检查长度字符串是否超过某个数字
我想检查超过20个字符的字符串的长度,如果超过20个字符,那么将返回1,否则返回矩阵形式的0[n x 1]。但是现在,我得到了[1x1]的答案。如何修改if-else语句中的代码以获取ansMatlab:如何检查长度字符串是否超过某个数字,matlab,matlab-figure,matlab-deployment,matlab-compiler,Matlab,Matlab Figure,Matlab Deployment,Matlab Compiler,我想检查超过20个字符的字符串的长度,如果超过20个字符,那么将返回1,否则返回矩阵形式的0[n x 1]。但是现在,我得到了[1x1]的答案。如何修改if-else语句中的代码以获取ans str = {'http://www.mathworks.com/matlabcentral/newsreader/view_thread/324182', 'http://jitkomut.lecturer.eng.chula.ac.th/matlab/text.html', 'http://ww
str = {'http://www.mathworks.com/matlabcentral/newsreader/view_thread/324182',
'http://jitkomut.lecturer.eng.chula.ac.th/matlab/text.html',
'http://www.ee.ic.ac.uk/pcheung/teaching/ee2_signals/Introduction%20to%20Matlab2.pdf'};
a = cellfun(@length,str)
if a > 20
'1'
else
'0'
end
输出:
a=
比如说,我想要
ans =
1
1
1
在Matlab中,您可以简单地使用(如果需要语句,则不使用): 这将为您提供:
a =
68 57 83
ans =
1
1
1
在Matlab中,您可以简单地使用(如果需要语句,则不使用): 这将为您提供:
a =
68 57 83
ans =
1
1
1
< @ Huruun-TunTo提到,如果不需要一个<代码>,<代码>如果只考虑它返回的矩阵的第一个元素,因此只给你一个值。 但实际上,您可以通过使用匿名函数在您的
cellfun
中完成这一切:
cellfun(@(x)(length(x) > 20), str)
P< > > @ Haluun-TunTo提到,如果不需要一个<代码>,<代码>如果只考虑它返回的矩阵的第一个元素,因此只给你一个值。 但实际上,您可以通过使用匿名函数在您的
cellfun
中完成这一切:
cellfun(@(x)(length(x) > 20), str)
并一次性得到结果。由于在matlab中没有c三元运算符(?:)的等价物,您可以使用以下两个语句替换
if-then-else
语句,并实现您的要求:
b(a==a)='0'
b(a>20)='1'
第一行初始化结果数组,其中所有值b
默认为else
分支的值,即'0'
,
第二行将条件>20
保存的元素更改为然后分支中的值,即'1'
如果输出值为布尔值,则只需执行以下操作:
(a>20)
正如@herohuyongtao建议的或使用@Dan的答案。由于matlab中没有c三元运算符(?:)的等价物,您可以使用以下两个语句替换您的if-then-else
语句,并实现您的要求:
b(a==a)='0'
b(a>20)='1'
第一行初始化结果数组,其中所有值b
默认为else
分支的值,即'0'
,
第二行将条件>20
保存的元素更改为然后分支中的值,即'1'
如果输出值为布尔值,则只需执行以下操作:
(a>20)
按照@herohuyongtao的建议或使用@Dan的答案