首先,我有一个叫做渗透性的函数。
# permeabiliy function
# L is short for the Lable
mu_0 = 4 * pi * 10^(-7);
mu_r_core = 50;
mu_r_air = 1;
L = Int16;
function permeability(L)
if L in 1:4
if L !== 3
return mu = mu_r_air * mu_0
else
return mu = mu_r_core * mu_0
end
else
println("null") #print output in a new line
end
end
Run Code Online (Sandbox Code Playgroud)
然后,我有一个名为domain的矩阵,如下所示,
domain
2392-element Array{Int16,1}:
1
1
3
1
...
Run Code Online (Sandbox Code Playgroud)
当我调用渗透性(域[3])时,输出是,
L = domain[3]
permeability(L)
Run Code Online (Sandbox Code Playgroud)
输出是
1.2566370614359177e-6
Run Code Online (Sandbox Code Playgroud)
然而,当我简单地调用渗透率(3)时,
permeability(3)
Run Code Online (Sandbox Code Playgroud)
输出是
6.283185307179588e-5
Run Code Online (Sandbox Code Playgroud)
因此,似乎从矩阵域传递的值只是“1”,但在这种情况下,域 [3] 应该是 3,并且在这两种情况下结果应该相同。
有人可以告诉我我错在哪里吗?
问题是你的数组存储Int16
while3
是一个Int64
. L!==3
要求L
与3
ie 的类型相同Int64
。你想要的L!=3
。您的困惑可能来自这样一个事实,!=
即==
while!==
的倒数是===