Hello, the complex number in the case 1D can be obtained as expected doing first $r=$r->r2C
But in 2D case I still did not have succeeded to match with dataflow on $r in the sense of the mask For example, If I do $r=(zeroes(3,3)->ndcoords/2-pdl(0.5,0.5))->r2C; $rr=($r**2)->sumover->sqrt; ($r1,$r2)=where_both($rr,$rr->abs<0.2) I obtain the expected result in $r1 and $r2 in agreement with the mask of the vectors lengths But, how to pass from that the respective length in the $r1 and $r2 to the vectors in $r ? It would be some index indirection that manage these facts? Regards El mar, 21 ene 2025 a las 20:35, Guillermo P. Ortiz (<gor...@exa.unne.edu.ar>) escribió: > Hi Ed, > yes, just I was trying with where_both > But I get unexpected behaviour for me in 2D case > > 1) first in 1D > > pdl> $r=zeroes(3)->ndcoords/2-pdl(0.5) > > pdl> p $r > > [ > [-0.5] > [ 0] > [ 0.5] > ] > > pdl> ($r1,$r2)=where_both($r,$r->abs < 0.2) > > pdl> p $r1 > [0] > > pdl> p $r2 > [-0.5 0.5] > > now, trying to modify $r following that condition > > pdl> $r1.=$r1+1 > > pdl> $r2.=$r2+3 > > pdl> p $r > > [ > [2.5] > [ 1] > [3.5] > ] > > But this seem did not work for complex number > > pdl> $r1.=$r1*(1+i) > > pdl> $r2.=$r2-(1+i) > > > pdl> p $r > > [ > [1.5] > > [ 1] > [2.5] > > ] > > And, seem did not work in 2D for real case neither > > pdl> $r=zeroes(3,3)->ndcoords/2-pdl(0.5,0.5) > > pdl> p $r > > [ > [ > [-0.5 -0.5] > [ 0 -0.5] > [ 0.5 -0.5] > ] > [ > [-0.5 0] > [ 0 0] > > [ 0.5 0] > ] > [ > [-0.5 0.5] > > [ 0 0.5] > [ 0.5 0.5] > > ] > ] > > pdl> ($r1,$r2)=where_both($r,($r**2)->sumover->sqrt < 0.2) > > pdl> p $r1 > [0.5] > > pdl> p $r2 > [-0.5 -0.5 0 -0.5 -0.5 -0.5 0 0] > > what I doing wrong here? > > Regards > > > > > > > > > > > > > > > > > > > > > > > El mar., 21 de enero de 2025 19:42, Ed . <ej...@hotmail.com> escribió: > >> Hi Guillermo, >> >> That does feel to me like you'd want to *not* do something on the whole >> ndarray, but instead do something on a $pdl->where(condition...). What >> do you think? >> >> Best regards, >> Ed >> >> ------------------------------ >> *From:* Guillermo P. Ortiz <gor...@exa.unne.edu.ar> >> *Sent:* 21 January 2025 19:07 >> *To:* Ed . <ej...@hotmail.com> >> *Cc:* pdl-devel@lists.sourceforge.net <pdl-devel@lists.sourceforge.net>; >> perldl <pdl-gene...@lists.sourceforge.net> >> *Subject:* Re: [Pdl-devel] conditional inline >> >> For instance, I am trying with $r, like below >> >> $r=(zeroes(2*$N+1,2*$N+1)->ndcoords-pdl($N,$N))/(2*$N+1) >> >> Regards >> >> El mar, 21 ene 2025 a las 14:39, Guillermo P. Ortiz (< >> gor...@exa.unne.edu.ar>) escribió: >> >> Yes Ed, you are right. >> I want to perform different operations on $r >> depending on its distance to a point $r0 in 2D. >> Then, I guess that first, and because for further >> manipulation, I decide to center $r-=$r0 in >> such a point. >> >> Then in false code, >> >> if ( length ($r) < $a) >> { return f($r)} >> else >> { return g($r) } >> >> where "length" I am not sure, but it could be inner($r,$r)->sqrt. >> Maybe no ternary expression but some subroutine will be fine also. >> >> Regards >> >> >> >> >> >> >> >> >> >> >> >> >> El mar, 21 ene 2025 a las 14:16, Ed . (<ej...@hotmail.com>) escribió: >> >> Hi Guillermo, >> >> That conditional will, for the case you've given, always be false, >> because it has values more than 0.2 away from 0.5. When you use all, you >> are asking a question about the entire ndarray, in other words for every >> single value in it. >> >> I believe that there's some real problem you're trying to solve, but I'm >> afraid I still have absolutely no idea what it is. Please help me help you! >> >> Best regards, >> Ed >> >> ------------------------------ >> *From:* Guillermo P. Ortiz <gor...@exa.unne.edu.ar> >> *Sent:* 21 January 2025 01:19 >> *To:* Ed . <ej...@hotmail.com> >> *Cc:* pdl-devel@lists.sourceforge.net <pdl-devel@lists.sourceforge.net>; >> perldl <pdl-gene...@lists.sourceforge.net> >> *Subject:* Re: [Pdl-devel] conditional inline >> >> Ok, Ed, >> That example did not work for me. >> The conditional results seems to be allways false. I mean, that it give >> $x also when $x is near to 0.5 than 0.2, where I is expecting the $x**2 >> result. >> >> Regates >> >> >> >> El El lun, 20 ene 2025 a la(s) 20:39, Ed . <ej...@hotmail.com> escribió: >> >> Hi Guillermo, >> >> You may still be having a problem, but you have yet to tell us what it >> is. The code you sent works fine, including as many dimensions as you like >> (because all acts on the whole ndarray at once). >> >> If there's a problem in there, please share it :-) >> >> Best regards, >> Ed >> >> ------------------------------ >> *From:* Guillermo P. Ortiz <gor...@exa.unne.edu.ar> >> *Sent:* 20 January 2025 23:35 >> *To:* Ed . <ej...@hotmail.com> >> *Cc:* pdl-devel@lists.sourceforge.net <pdl-devel@lists.sourceforge.net>; >> perldl <pdl-gene...@lists.sourceforge.net> >> *Subject:* Re: [Pdl-devel] conditional inline >> >> Thanks Ed, >> Using ternary conditional expression >> I still have some problem with múltiple disensión case. >> See my example in message befare >> >> >> El El lun, 20 ene 2025 a la(s) 19:31, Ed . <ej...@hotmail.com> escribió: >> >> Hi Guillermo, >> >> You can do that indeed, that's just Perl. If you wanted to do operations >> on a subset of that ndarray, then you'd do e.g. >> >> $pdl->where(($pdl-0.5)->abs < 0.2) *= 5; >> >> An observation is that the above condition could be a bit shorter by >> using the recently-added approx_artol: (which would also mean it ran >> quicker) >> >> $pdl->approx_artol(0.5, 0.2) >> >> Best regards, >> Ed >> >> ------------------------------ >> *From:* Guillermo P. Ortiz <gor...@exa.unne.edu.ar> >> *Sent:* 20 January 2025 19:39 >> *To:* pdl-devel@lists.sourceforge.net <pdl-devel@lists.sourceforge.net>; >> perldl <pdl-gene...@lists.sourceforge.net> >> *Subject:* [Pdl-devel] conditional inline >> >> Hello ! >> >> I am not sure, but maybe It is possible to do with perl PDL something >> like this? >> >> $ndarray= condition on $ndarray ? assign when true : assign when false >> >> for example: >> >> $x=zeroes(20)->xlinvals(0,1); >> >> $y=(all abs($x-0.5)<0.2)?$x**2:$x; >> >> Thanks in advance >> >> Regards >> >> -- >> >> >> Dr. Guillermo P. Ortiz >> Electromagnetismo Aplicado >> Dto. Física, Facultad de Ciencias Exactas >> Universidad Nacional del Nordeste >> Avda Libertad 5460 >> <https://www.google.com/maps/search/Avda+Libertad+5460?entry=gmail&source=g>, >> Campus UNNE. >> W3404AAS Corrientes, Argentina. >> (+54) 379-4424678 interno 4613 >> gortiz* at *unne edu ar >> >>
_______________________________________________ pdl-devel mailing list pdl-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/pdl-devel