Что означает 1./diag(A)? - PullRequest
       29

Что означает 1./diag(A)?

0 голосов
/ 23 ноября 2018

, поэтому я пытаюсь изучить код, написанный на MATLAB.И есть эти две странные строки кода, которые я не могу понять, может быть, кто-то может мне помочь?Я новичок в MATLAB, я кодирую на C # большую часть времени.

Насколько я знаю, diag (A) означает, что он принимает члены главной диагонали матрицы A. Но как насчетдругие части линии?Особенно операция 1. /, что она делает?

В приведенном ниже коде

A - матрица 4x4, в которой хранятся значения двойного типа, b - вектор коэффициентов и альфапроизвольно выбранный вектор (10, 5, 4, 2).

Atld=diag(1./diag(A))*A-diag(alpha)
btld=diag(1./diag(A))*b

1 Ответ

0 голосов
/ 23 ноября 2018

diag(A) возвращает вектор с диагональными элементами матрицы A
./ является оператором поэлементного деления, поэтому 1./diag(A) инвертирует элементы из этого вектора.
diag(1./diag(A)) возвращаетдиагональная матрица из этого вектора

Таким образом, в основном diag(1./diag(A)) является матрицей с обратной диагональю A на ее диагонали и нулями повсюду.

...