2015-12-03 3 views
1

Как тайному вектор А для симметричной матрицы М в MATLABСоздание симметричной матрицы из вектора в MATLAB

enter image description here

enter image description here

Такое, что M является симметричной матрицей (т.е. A21 = A12) и все диагональные члены равны (т. е. A11 = A22 = A33 = A44).

+1

Здесь мы не поддерживаем LaTeX. Пожалуйста, используйте синтаксис кодирования. Кроме того, я не вижу, как перейти от 'A' к' M'. Каково общее правило строительства? Что происходит, когда вы расширяете это за пределами 4 элементов в векторе? – rayryeng

+0

См. Пересмотренный вопрос – BERKO

+0

Это лучше. Благодарю. Я снова открываю, так как это не дубликат использования 'toeplitz'. – rayryeng

ответ

1

Используйте hankel, чтобы помочь вам создать симметричную матрицу, а затем, когда вы закончите, установите диагональные элементы этого промежуточного результата, чтобы быть первым элементом вектора в A:

M = hankel(A,A(end:-1:1)); 
M(eye(numel(A))==1) = A(1); 

Пример
>> A = [1;2;3;4] 

A = 

    1 
    2 
    3 
    4 

>> M = hankel(A,A(end:-1:1)); 
>> M(eye(numel(A))==1) = A(1) 

M = 

    1  2  3  4 
    2  1  4  3 
    3  4  1  2 
    4  3  2  1 

Как вы можете видеть, M(i,j) = M(j,i) кроме диагонали, где каждый элемент равен A(1).