Le 21/01/2020 à 00:54, Federico Miyara a écrit :
Samuel,
Thanks VERY much!
It certainly does the job, but I don't quite understand how. For
example, to retrieve the last columns of all dimensions:
A = matrix(1:120, [5,4,2 3]);
L = list();
for i=1:length(size(A))
L($+1) = 1:size(A)(i);
end
L(2) = size(A)(2);
// or
L = list();
for i = 1:ndims(A)
L($+1) = :;
end
L(2) = $;
B = A(L(:));
B is exactly the desiredresult. But when I try to see what is L(:) I get
--> L(:)
ans =
1. 2. 3. 4. 5.
Yes, it's a bit tricky: L(:) extracts all L components, but there is no
LHS recipient except the invisible ans. Then, only ans is assigned, to
L(1). Other L(2:$) are ignored.
.../...
If I try to assign L(:) to a variable I get
--> u=L(:)
Can not assign multiple value in a single variable
This is somewhat reported here: http://bugzilla.scilab.org/14372
So I attempt
--> [u1,u2,u3,u4] = L(:)
and get
u4 =
1. 2. 3.
u3 =
1. 2.
u2 =
4.
u1 =
1. 2. 3. 4. 5.
This is described on https://help.scilab.org/docs/6.0.2/en_US/brackets.html
../..
I would like to understand what's going on.
(a,b,c) is the smart Scilab "deal()" operator:
[a, b, c] = (3, 1, -2)
--> [a, b, c] = (3, "Hi", -2)
a =
3.
b =
Hi
c =
-2
Regards
Samuel
_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users