julia括号问题


#1

小白求指点julia的for循环的end问题,代码如下,我用的vscode编辑
function llg(dm_dt::Array{Float64, 4}, m::Array{Float64, 4}, h::Array{Float64, 4},nx::Int64,ny::Int64,nz::Int64,lambda::{Float64,3}, alpha::Float64, gamma::Float64)
a = alphagamma
for i = 1:nx
for j = 1:ny
for k = 1:nz
lambda[i][j][k] = a/m[i][j][k]
mxh[i][j][k] = cross_product((m[i][j][k],h[i][j][k])
dm_dt[i][j][k] = -gamma
mxh[i][j][k]-lambda[i][j][k]*cross_product(m[i][j][k],mxh[i][j][k])
end
end
end
end

vscode告诉我函数里面应该加一个. 为什么?
第一个end的地方有一个error 是啥呀


#2

LZ查一下点运算,这个函数可以不用这么复杂的循环。还有一个,数组索引应该是lambda[i,j,k]


#3

感谢回复.我没在julia手册里面找到外积所以自己定义了一个.但是我不知道这个地方括号后面为什么会有错误


另外,想问下julia用这种嵌套循环是不是特别慢,是不是把数组搞成一维的比较合理


#4

应该是括号不匹配,cross_product后面跟了两个左括号,行尾只有一个右括号。(为啥你中间三行不缩进下。。。)

不慢的。(实在拿不准你的地方你可以跑benchmark试试)