Four indexing matrix
Ältere Kommentare anzeigen
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 Kommentare
Oleg Komarov
am 21 Jul. 2011
What do you mean? You want to retrieve two points at the same time?
Nikolaos
am 22 Jul. 2011
Jan
am 22 Jul. 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.
Akzeptierte Antwort
Weitere Antworten (2)
Friedrich
am 21 Jul. 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 Kommentar
Nikolaos
am 22 Jul. 2011
Jan
am 22 Jul. 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 Kommentare
Nikolaos
am 22 Jul. 2011
Andrei Bobrov
am 22 Jul. 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
am 22 Jul. 2011
a = reshape(pall, 2,2,2,2);
Nikolaos
am 22 Jul. 2011
Nikolaos
am 5 Okt. 2011
Kategorien
Mehr zu Matrix Indexing finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!