很好也很有用!
好的
很好,一开始我认为这是不可能在一行中完成的……
同意,有用
好问题。应该想办法解决
一系列不错的解决方案万博 尤文图斯
有趣的
吵
函数y = lengthOnes(x)
Y = double(x == '1');
L=努美尔(y);
A=万亿(一(L,L));
C = mat2cell (A,(1升),L);
D = cellfun(@(c) conv(c,y), c, "UniformOutput",false);
E=cellfun(@(c)和(c),c);
F=cellfun(@(c)最大值(c),D);
R=最大值(E(F==E));
如果(isempty (R))
y=0;
其他的
y=R;
结束
结束
他们是角色而不是替身!
函数y = lengthOnes(x)
一个= [];
Idx = [1,find(x=='0') + 1,length(x)+2];
勒=长度(idx);
a(1:le-1)=idx(2:le)-idx(1:le-1)-1;
y=最大值(a);
结束
实际上不需要regexp
很酷的
对如何提高有什么建议吗?
如何改进代码?
a=regexp(x,'0+','split')
={马克斯(长度(a))}
y=长度(a)
使用此代码,除第四个测试外,所有测试都通过。为什么会这样?
有什么办法改进这个算法吗?
当y为空向量时,max(y)不返回0,这使我的代码变得复杂
它在我的Matlab程序中运行良好。
在你的MATLAB中需要多少时间?科迪有50秒的限制
Aditya耆那教徒的
你有时限信息的来源吗?
这可能是有史以来最低效的代码了:)
我很喜欢
有效的想法
我知道这不是很有效,但我有点喜欢这个循环背后的一个想法。因此共享。
很好的解决方案,易于理解,并可翻译为未来的使用。
非常不熟悉“regexp”函数会导致一个非常愚蠢的代码。。。
hmmmmm……; -)好
最后介绍了在Cody中正确使用regexp