Le 24/04/2019 à 10:07, Samuel Gougeon a écrit :
.../...

For the general discussion, i think that, from a user's point a view, when using a container as LHS argument, a distributive assignment would be *often* very useful. It might be either through a new *.=* "operator", or through the classic "=" one but only when for instance the RHS is a container as well,

  * either a list with the right number of elements at depth = 0
  * or a cell or struct array with the same sizes as the cell or
    struct (or struct or cell) on the LHS

AFAIR, this kind of feature is already reported as a wish.


By the way, while it was possible in Scilab 5.5.2 to assign the elements of a list to all elements of the field of an array of structures, it is no longer the case in Scilab 6.0:

--> clear s
--> s.a = %pi;
--> s.b = "a";
--> s(2).a = %e;
--> s(2).b = "b"
 s  =
2x1 struct array with fields:
   a
   b

--> setfield("a", list(%i, 3.1), s)
setfield:  Wrong type for input argument #3: List expected.

In Scilab 5, we get the right assignment:

-->setfield("a",list(%i,3.1),s)
-->s.a
 ans  =
       ans(1)
    i
       ans(2)
    3.1
-->s(2).a
 ans  =
    3.1

This Scilab 6 restriction weakens the usage of arrays of structures.

Samuel

_______________________________________________
dev mailing list
dev@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/dev

Reply via email to