sprank

Структурный ранг

Синтаксис

Описание

пример

r = sprank(A) вычисляет структурный ранг разреженной матрицы A.

Примеры

свернуть все

Вычислите структурный ранг матрицы 2 на 4.

A = [1 0 2 0
     2 0 4 0];
A = sparse(A);
rs = sprank(A)
rs = 2

Сравните структурный ранг с регулярным вычислением ранга.

rf = rank(full(A))
rf = 1

Для этой матрицы структурный ранг равен 2, поскольку два столбцов являются ненулевыми. Но фактический ранг матрицы равен 1, поскольку столбцы являются кратными друг другу.

Входные параметры

свернуть все

Входная матрица, заданная как разреженная матрица.

Типы данных: double
Поддержка комплексного числа: Да

Подробнее о

свернуть все

Структурный ранг

Структурный ранг матрицы является максимальным рангом всех матриц с одинаковым ненулевым шаблоном. Матрица имеет полный структурный ранг, если ее можно переместить так, чтобы диагональ не имела нулевых значений.

Структурный ранг является верхней границей ранга матрицы, поэтому он удовлетворяет sprank(A) >= rank(full(A)).

Вот некоторые определения структурного ранга с точки зрения других функций:

  • Структурный ранг является «максимальным совпадением» и связан с разложением Дюльмага-Мендельсона по sprank(A) = sum(dmperm(A)>0).

  • В отличие от этого, dmperm, matchpairs функция также учитывает веса при вычислении совпадений. Можно вычислить максимальное соответствие, преобразовав матрицу в 1с и 0с и максимизируя вес соответствий с matchpairs(double(A~=0),0,'max'). Структурный ранг тогда равен количеству матчей.

См. также

|

Представлено до R2006a