Я знаю, что в Matlab вы можете использовать «хорошие» векторные операции, такие как A*B
или A.*B
операции вектора Matlab (вектор + вектор (элемент))
Если у вас есть
A=[2, 2];
B=[3, 1];
это логика, вы не может использовать A*B
. Вы можете использовать A.*B
что такое A[1]*B[1], A[2]*B[2]
, а результат [6, 2]
.
Во многих "сценариев" Я пишу, я часто нужно использовать что-то, что приводит к:
[6, 6;
2, 2]
Поэтому в основном я должен использовать forcycle (что-то вроде :):
C=zeros(2,2);
for i=1:size(A,1)
C(i,:)=A*B(i);
end
И я хотел бы спросить, как (если это возможно) переписать это без forcycles? Является ли это возможным? Это 2 вектора из 2 элементов, может быть, плохо для понимания того, что мне нужно. Так еще один пример:
A=[1,2,3,4,5]
B=[2,4]
Результат:
[2,4,6,8,10;
4,8,12,16,20]
в коротком что-то вроде:
C (1: конец < ==== GO одним элементом,:) = A * B (1: end < ===== GO BY ONE ELEMENT)
-> Возьмите вектор WHOLE A и умножьте его на FIRST-элемент в B и сохраните его в строке FIRST в матрице, в которой есть столбцы A и B.
-> Возьмите WHOLE вектор A и умножьте его на SECOND element в B и сохраните его в SECOND строке в матрице, где есть столбцы A и B.
-> Возьмите вектор WHOLE A и умножьте его на элемент THIRD в B и сохраните его в строке THIRD в матрице, в которой есть столбцы A и B строки ..
-> ...
-> Возьмите ВСЮ вектор а и умножить его на последний элемент в B и сохранить его в последней строке в матричная, что у а столбцы и строки B ..
будет try..thanks..bsxfun функции является то, что я действительно не понимаю, и я думал, что будет solution..got попробовать что ..thanks – piggy
именно то, что мне нужно было делать..работать, как шарм .. спасибо вам большое .. и можете ли вы, пожалуйста, посоветовать мне немного больше .. у вас есть ссылка, где функции bsx хорошо объясняются, что я могу возможно, попытайтесь их понять? еще раз большое спасибо. answer found. – piggy
Чтобы понять такую функцию, вам, вероятно, придется играть с игрушечными примерами. Здесь 'bsxfun' использует вектор-столбец B (' B''), принимает по одному элементу за раз (сначала из B, затем второго) и применяет для каждой из них функцию 'times' (A раз одно значение B). – marsei