Как я могу создать треугольную матрицу на основе вектора в MATLAB?

<ProgressBar
    android:id="@+id/progressBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"
    android:layout_centerInParent="true"
    />
11
задан Shalom Craimer 18 June 2009 в 08:32
поделиться

3 ответа

hankel (A) даст вам первую матрицу

triu (toeplitz (A)) даст вам вторую.

- Loren

25
ответ дан 3 December 2019 в 02:30
поделиться

Я бы хотел создать матрицу A :

101 102 103 104 105
101 102 103 104 105
101 102 103 104 105
101 102 103 104 105
101 102 103 104 105

А затем найти матрицу B такую, что когда вы умножьте A * B и получите желаемый результат. Обычно сначала выполняйте линейную алгебру на бумаге, а затем пусть Matlab выполнит вычисления.

2
ответ дан 3 December 2019 в 02:30
поделиться

Лучшие решения перечислены Лорен . Также возможно создать эти матрицы, используя SPDIAGS :

vec = 101:105;
A = full(spdiags(repmat(vec,5,1),0:4,5,5));  % The second matrix
B = fliplr(full(spdiags(repmat(fliplr(vec),5,1),0:4,5,5)));  % The first matrix

Я помню, как создавал такие матрицы с полосами до того, как узнал о некоторых встроенных функциях, упомянутых Лорен. Это не так просто и чисто, как их использовать, но это сработало. =)

3
ответ дан 3 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: