Как я могу умножить каждый элемент в векторе на все элементы другого вектора в MATLAB - PullRequest
0 голосов
/ 24 февраля 2019

Например, у меня есть первый вектор [2x1]:

A = 
[1;-1]; 

, а другой вектор также [2x1]:

B = 
[7;8];

Мне нужно, чтобы C был результатомумножение первого элемента 1 на 7 и 8, а затем -1 на 7 и 8, поэтому результирующий вектор c будет равен [4x1]:

C = 
[7; 8;-7;-8];

спасибо

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Как вы упомянули, вам особенно нужен подход с использованием циклов, вот один из них:

A = [1, -1];
B = [7, 8];
m = length(A);
n = length(B);
C = zeros(m * n, 1);
for i = 1:m
  for j = 1:n
    C((i-1) * n + j) = A(i) * B(j);
  end
end
C

C =

 7
 8
-7
-8

Лично я бы тоже предпочел функцию kron ...

0 голосов
/ 24 февраля 2019

То, что вы делаете, это вычисление продукта Кронекера .В Matlab это реализовано в функции kron.

A =[1;-1];
B = [7;8];
kron(B,A)

ans =

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