On 12/6/06, Giorgio Luciano <[EMAIL PROTECTED]> wrote: > Today I've also posted a question to scipy groups because I've thought > I've found a solution but > > this work good > > bar(N, b1[:,0], width, color='r', yerr=binterv) > ############ > s3=find(sig1[:,arange(ini,c)]<=0.001)
Just a few tips before I answer your question. Is sig1 a global constant? It is a good practice to write constant names in uppercase. Otherwise consider passing it as a function argument. > b1=b.flatten() > #if s3!=[]: if s3: ... > for i3 in arange(len(s3)): Although this works, a no-surprise way is to use standard xrange: for i3 in xrange(len(s3)): ... or enumerate: for i3, elem in enumerate(s3): ... > text(s3[i3], b1[s3[i3]+ini],'***') > s2=find(logical_and(sig1[:,arange(ini,c)]>0.001,sig1[:,arange(ini,c)]<=0.01)) Boolean operators are also ok, just remember about parentheses and operators priority: (sig1[:,arange(ini,c)]>0.001) & (sig1[:,arange(ini,c)]<=0.01) > for i2 in arange(len(s2)): > text(s2[i2], b1[s2[i2]+ini],'**') > s1=find(logical_and(sig1[:,arange(ini,c)]>0.01,sig1[:,arange(ini,c)]<=0.05)) > for i1 in arange(len(s1)): > text(s1[i1], b1[s1[i1]+ini],'*') > title('Plot of the coefficients of the model') > > and when i uncomment the ifs3!=[] part it does not... I think you have just discovered a bug or it's an inconsistency I didn't know of? >>> print numpy.array([1,1]) == [], numpy.array([1,1]) != [] False True >>> print numpy.array([1]) == [], numpy.array([1]) != [] [] [] >>> print numpy.array([]) == [], numpy.array([]) != [] [] [] >>> numpy.__version__ '1.0' > so in this case I've solve the problem.. but is there an equivalent for > isempty matlab command in numpy ? Just like for other Python objects: if ifs3: print "not empty" or check if .size attribute is positive. cheers, fw _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion