IND = SUB2IND4UP(I, J) returns the linear index equivalent to the row and column subscripts I and J
Let ind be a vector of indexes for entries of some upper triangular matrix. The entries are selected vertically so that:
ind = 1 is associated to entry (1, 2)
ind = 2 is associated to entry (1, 3)
ind = 3 is associated to entry (2, 3)
ind = 4 is associated to entry (1, 4)
...
ind = N * (N - 1) / 2 is associated to entry (N - 1, N)
***********************************************************************
EXAMPLE
If
A = rand(10);
and
b = A(find(triu(A, 1)));
then, given subscripts
I = [1:9];
and
J = [2:10];
for matrix A, these are equivalent to indices
IND = sub2ind4up(I, J);
for vector b. In fact:
all(A(sub2ind(size(A), I, J)) == b(IND)')
ans =
1
This is obtained without even knowing about size(A)
***********************************************************************
See also SUB2IND, IND2SUB, FIND.
|