Compute rank of matrix over Galois field


rk = gfrank(A,p)


    Note:   This function performs computations in GF(pm) where p is prime. If you are working in GF(2m), use the rank function with Galois arrays. For details, see Computing Ranks.

rk = gfrank(A,p) calculates the rank of the matrix A in GF(p), where p is a prime number.


In the code below, gfrank says that the matrix A has less than full rank. This conclusion makes sense because the determinant of A is zero mod p.

A = [1 0 1;
   2 1 0;
   0 1 1];
p = 3;
det_a = det(A); % Ordinary determinant of A
detmodp = rem(det(A),p); % Determinant mod p
rankp = gfrank(A,p);
disp(['Determinant = ',num2str(det_a)])
disp(['Determinant mod p is ',num2str(detmodp)])
disp(['Rank over GF(p) is ',num2str(rankp)])

The output is below.

Determinant = 3
Determinant mod p is 0
Rank over GF(p) is 2

More About

expand all


gfrank uses an algorithm similar to Gaussian elimination.

Introduced before R2006a

Was this topic helpful?