Four indexing matrix
Mostrar comentarios más antiguos
I have a matrix nxn, each element is described by a 2 index number (i.e. one number for the column, one for the row). The problem is that i want to access this matrix by a four digit indexing. Is there a way to do that?
3 comentarios
Oleg Komarov
el 21 de Jul. de 2011
What do you mean? You want to retrieve two points at the same time?
Nikolaos
el 22 de Jul. de 2011
Jan
el 22 de Jul. de 2011
There is an infinite number of possibilities to map "A(k,l,m,n)->p(i,j)". Please specify how {k,l,m,n} and {i,j} are connected.
Respuesta aceptada
Más respuestas (2)
Friedrich
el 21 de Jul. de 2011
Hi,
I am not sure what you mean with 4digit indexing. Do you want a 4d matrix?
>> a = zeros(3,3,3,3);
>> a(1,2,1,3)
ans =
0
Or do you like to pass 2 pairs of indices?
a = [1 2; 3 4]
%try to access 1,1 and 1,2
ind = sub2ind(size(a),[1 1],[1 2])
a(ind)
ans =
1 2
1 comentario
Nikolaos
el 22 de Jul. de 2011
Jan
el 22 de Jul. de 2011
One example:
A = rand(3, 4, 5, 6);
p = reshape(A, 12, 30);
disp(A(2,3,4,5))
disp(p(8, 24))
Does this match your needs? Then SUB2IND and IND2SUB might help.
5 comentarios
Nikolaos
el 22 de Jul. de 2011
Andrei Bobrov
el 22 de Jul. de 2011
pall=[1 2 3 4;5 6 7 8; 9 10 11 12; 13 14 15 16]
a = zeros(2,2,2,2)
a(:) = pall
Jan
el 22 de Jul. de 2011
a = reshape(pall, 2,2,2,2);
Nikolaos
el 22 de Jul. de 2011
Nikolaos
el 5 de Oct. de 2011
Categorías
Más información sobre Matrix Indexing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!