Как генерировать сохраняющую среднее значение ортонормированную матрицу в 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 желаемое измерение.

Другие вопросы по тегам