如何对行和列向量进行计算以获得矩阵

dan*_*jjl 1 arrays matlab matrix multidimensional-array

我想用MATLAB计算以下表达式:

ans = cos(?.t + ?)
Run Code Online (Sandbox Code Playgroud)

哪里:

  • ω是一个标量
  • t是[1 xn]矩阵
  • φ是[mx 1]矩阵

ans 应该是[mxn]矩阵.

是否可以用来arrayfun计算这个表达式?它们是否还有其他任何MATLAB函数来计算它,还是需要在for循环中逐行计算?

bea*_*ker 7

这看起来像... bsxfun的工作!

w=randn;
n=5; m=4;
t=[1:n];
p=[1:m].';
cos(bsxfun(@plus, w*t, p))
Run Code Online (Sandbox Code Playgroud)

结果:

ans =

   0.180565  -0.206185  -0.562089  -0.833904  -0.980967
  -0.730080  -0.934792  -0.999659  -0.914976  -0.693411
  -0.969493  -0.803956  -0.518147  -0.154823   0.231664
  -0.317559   0.066034   0.439747   0.747674   0.943748
Run Code Online (Sandbox Code Playgroud)