Matlab Массивы матриц 2x2 и поэлементное умножение матрицы на вектор - PullRequest
0 голосов
/ 02 апреля 2012

Я хочу иметь временной ряд 2x2 комплексных матриц, Ot, а затем я хочу иметь 1-строчные команды для умножения массива комплексных векторов Vt на массив Ot, где позиция в массиве понимается как момент времени Я хочу, чтобы Vtprime (i) = Ot (i) * Vt (i). Кто-нибудь может предложить простой способ реализовать это?

Предположим, у меня есть матрица M (t), где элементы m (j, k) являются функциями от t, а t является элементом некоторого ряда (t = 0: 0,1: 3). Можно ли очень легко создать массив матриц?

Я понимаю, как иметь массив в Matlab и даже двумерный массив, где каждый индекс "i" содержит два комплексных числа (j = 0,1). Это был бы способ иметь «временной ряд сложных 2-мерных векторов». Способ иметь временной ряд сложных матриц был бы трехмерным массивом. (i, j, k) обозначает «i-ую» матрицу, а j = 0,1 и k = 0,1 дают элементы этой матрицы.

Если я пойду в голову и буду относиться к matlab как к языку программирования без специальных пакетов, то в конечном итоге мне придется писать умножения матриц в терминах циклов и т. Д. Это затем относится ко всем матричным операциям. Я бы предпочел использовать команды, которые сделают все это очень легко, если я смогу.

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Это можно решить с помощью итераций массива Matlab, таких как

vtprime(:) = Ot(:)*Vt(:)

если я правильно понимаю вашу проблему.

0 голосов
/ 02 апреля 2012

Поскольку Ot и Vt меняются вместе с индексом времени, я думаю, что лучший способ сделать это в цикле.(Если бы только один из Ot или Vt менялся со временем, вы могли бы настроить его на одно большое умножение матриц.)

Вот как я бы это настроил: Ot - сложная трехмерная матрица 2x2xI, так что

Ot(:,:,i)

ссылается на матрицу в момент времени i.

Vt является сложной матрицей 2xI, так что

Vt(:,i)

ссылается на вектор в момент времени i.

Чтобы выполнить умножение:

for i = 1:I
    Vtprime(:,i) = Ot(:,:,i) * Vt(:,i);
end

Полученный Vtprime представляет собой матрицу 2xI, настроенную так, чтобы Vtprime(:,i) был выходом в момент времени i.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...