[Scilab-users] Accessing elements sharing an index from a diimension en N-D arrays
Federico Miyara
fmiyara at fceia.unr.edu.ar
Tue Jan 21 00:54:13 CET 2020
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);
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.
and
--> A(ans)
ans =
1.
2.
3.
4.
5.
If I try to assign L(:) to a variable I get
--> u=L(:)
Can not assign multiple value in a single variable
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.
However disp(L(:)) yields
1. 2. 3.
1. 2.
4.
1. 2. 3. 4. 5.
I would like to understand what's going on.
Regards,
Federico Miyara
On 20/01/2020 05:29, Samuel Gougeon wrote:
> Le 20/01/2020 à 09:18, Federico Miyara a écrit :
>>
>> Dear All,
>>
>> I have an N-D array A (sometimes called hyperarray) with n
>> dimensions, where n is a parameter a priori unknown since it is, for
>> instance, an input argument of a function. So in conceptual form each
>> element is
>>
>> A(k1, k2, k3, ..., kn)
>>
>> I'm looking for an elegant way to extract all elements with a given
>> index over a given dimension, for instance
>>
>> A(:, k2, :, ..., :)
>>
>> This would mean to get an hyperarray made up of the k2-th column of
>> all remaining dimensions.
>>
>> If extraction could be performed replacing the indexes by a list, for
>> instance
>>
>> L = list(),
>> for i=1:n
>> L($+1) = 1:size(A)(i);
>> end
>> L(2) = 1
>>
>> Then A(L) would work, but the result is an error message "Invalid index".
>
>
> A(L(:)) should do it.
>
>
>
> _______________________________________________
> users mailing list
> users at lists.scilab.org
> http://lists.scilab.org/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20200120/efa104e7/attachment.htm>
More information about the users
mailing list