gpt4 book ai didi

matlab向量运算(vector + vector(by element))

转载 作者:行者123 更新时间:2023-12-03 21:30:20 25 4
gpt4 key购买 nike

我知道在 Matlab 中您可以使用“不错”的矢量运算,例如 A*BA.*B

如果你有

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:end <==== 按一个元素执行,:)=A*B(1:end <===== 按一个元素执行)
--> 将整个向量 A 乘以 B 中的第一个元素,并将其保存在具有 A 列和 B 行的矩阵的第一行..
--> 将整个向量 A 乘以 B 中的第二个元素并将其保存在具有 A 列和 B 行的矩阵的第二行..
--> 将整个向量 A 乘以 B 中的第三个元素,并将其保存在具有 A 列和 B 行的矩阵的第三行..
--> ...
--> 将整个向量 A 乘以 B 中的最后一个元素,并将其保存在具有 A 列和 B 行的矩阵的最后一行..

最佳答案

你可以使用 bsxfun 来达到这个目的

P = bsxfun(@times,A,B')

这给出了

A =  1     2     3     4     5
B = 2 4


P = 2 4 6 8 10
4 8 12 16 20

关于matlab向量运算(vector + vector(by element)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19191747/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com