Как генерировать сохраняющую среднее значение ортонормированную матрицу в MATLAB?
Я хочу сгенерировать случайную сохраняющую среднее значение ортонормированную матрицу A в MATLAB, такую что:
A * trans (A) = I, && A * 1 = 1 (1 - вектор, в котором все массивы равны 1)
Буду признателен за любые предложения.
1 ответ
Решение
Я нашел ответ здесь: http://mathforum.org/kb/message.jspa?messageID=4575590
Они предложили следующую функцию:
function [U] = genU(m)
V1 = ones(m, 1) / sqrt(m);
[V, L] = svd(V1);
[Rm1, tmp] = qr(randn(m - 1, m - 1));
U = V * blkdiag(1, Rm1) * V';
Где m желаемое измерение.