Не совсем понятно, к чему вы стремитесь.
Но чтобы создать матрицу B
с определенным рангом k
, из матрицы A
(с rank
не менее k
), вы можете использовать svd
и действовать следующим образом:
>>> A= rand(7, 5);
>>> rank(A)
ans = 5
>>> [U, S, V]= svd(A);
>>> k= 3;
>>> B= U(:, 1: k)* S(1: k, 1: k)* V(:, 1: k)';
>>> rank(B)
ans = 3