什么是'。'操作员在一系列数字后使用吗?

时间:2017-11-17 08:04:27

标签: scilab

所以我正在通过一个程序来解决Scilab中的波偏微分方程,并且该程序将每个粒子的初始速度设置为波

u=xrange.*(1-xrange)

其中xrange是x轴值列表。我的问题是,xrange之后的时期是什么?

1 个答案:

答案 0 :(得分:0)

点表示逐个元素的操作。

如果您将.放在其他运算符(*/\^)之前,则操作将按元素应用,而不是矩阵方式。

您可以在Scilab控制台上尝试简单的代码:

--> A = eye(2,2)
 A  = 
   1.   0.
   0.   1.

--> B = [1 2; 3 4]
 B  = 
   1.   2.
   3.   4.

--> A * B
 ans  =
   1.   2.
   3.   4.

--> A .* B
 ans  =
   1.   0.
   0.   4.

--> B^2 //which is the same as B*B
 ans  =
   7.    10.
   15.   22.

--> B.^2 //which is the same as B.*B
 ans  =
   1.   4. 
   9.   16.

在您的情况下,使用.*是一种更快,更易读的方法:

tmp = 1 - xrange;

for i = 1 : size(xrange,'r')
    for j = 1 : size(xrange,'c')
        u(i,j) = xrange(i,j) * tmp(i,j);
    end
end