[Scilab-users] [EXTERNAL] Re: {EXT} unexpected result

Stéphane Mottelet stephane.mottelet at utc.fr
Thu May 23 10:59:28 CEST 2019


Le 23/05/2019 à 09:34, Dang Ngoc Chan, Christophe a écrit :
> Hello,
>
>> De : Carrico, Paul
>> Envoyé : jeudi 23 mai 2019 09:21
>>
>> I share your suggestion in adding an example in the doc to prevent Scilab
>> users, but the question is "where" ?
> I suggest the "Scilab Help >> Elementary Functions > extraction" page.

I am not sure that is the right place. In fact our discussion is about 
the general concepts of *lvalue* and *rvalue* (in most languages, 
compiled or interpreted, see e.g. 
https://www.quora.com/What-is-lvalue-and-rvalue-in-C which starts with 
general stuff valuable for Scilab also)

In this insertion expression:

x(i) = y

x(i) determines the identity of an object, and we need this because the 
evaluation of the expression will modify it . In this case "x(i)" is a 
*lvalue*. The "l" is to recall that such constructs are to the *left* of 
the assignment operator

In this extraction expression:

y = x(i)

"x(i)" is a *rvalue*, i.e. a "result"  which is _temporary_ 
materialized, and identity of x is lost (because we don't need it). Here 
the "r" can be seen as "right" as well as "result" (I prefer "result"...)

Hence, in the expressions

x=rand(10,1);
[v,k]=find(x(3:10))

find() just sees an anonymous/temporary 8x1 vector. It is the user's 
responsibility to do

k=k+2

to compute the actual index in original vector.

S.

>
> Regards
>
> --
> Christophe Dang Ngoc Chan
> Mechanical calculation engineer
>
> General
> This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error), please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure or distribution of the material in this e-mail is strictly forbidden.
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> https://antispam.utc.fr/proxy/1/c3RlcGhhbmUubW90dGVsZXRAdXRjLmZy/lists.scilab.org/mailman/listinfo/users


-- 
Stéphane Mottelet
Ingénieur de recherche
EA 4297 Transformations Intégrées de la Matière Renouvelable
Département Génie des Procédés Industriels
Sorbonne Universités - Université de Technologie de Compiègne
CS 60319, 60203 Compiègne cedex
Tel : +33(0)344234688
http://www.utc.fr/~mottelet

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20190523/ce2c7cb2/attachment.htm>


More information about the users mailing list