请教Julia对数组的操作


#1

新学Julia,有几个关于数值计算的问题,想请教。

1、如果有一个数组A,我想对A的部分元素进行处理,要怎么写,A[1:4], A[1:3,2:5]这样的语法有错误。

2、Julia有子程序么?怎么像fortran那样调用一个子程序,然后对部分数组、变量进行计算、修改。?

谢谢!


#2

感觉没什么问题,可以翻翻文档 多维数组 · Julia中文文档

julia> r = rand(5,5)
5×5 Array{Float64,2}:
 0.467913   0.501905  0.324777   0.474817  0.329025
 0.804868   0.940885  0.847733   0.572708  0.726289
 0.171812   0.807484  0.243146   0.425674  0.951482
 0.162194   0.683989  0.0862276  0.678932  0.417864
 0.0223547  0.685307  0.594828   0.201931  0.629033

julia> r[1]
0.46791302055897077

julia> r[1:4]
4-element Array{Float64,1}:
 0.46791302055897077
 0.8048680127435754
 0.1718116117298072
 0.16219435107693858

julia> r[1:3, 2:5]
3×4 Array{Float64,2}:
 0.501905  0.324777  0.474817  0.329025
 0.940885  0.847733  0.572708  0.726289
 0.807484  0.243146  0.425674  0.951482

不太了解 fortran,搜了下

原则上,在不改变程序中各变量值、需要获得一个返回值的情况下,使用 function,另外,function 可以直接用在赋值语句中……;
如果需要改变调用参数的值,全局变量的值等情况下,使用 subroutine,一般没有返回值。

julia 里都用函数就行了,像标准库里的! 结尾的函数都会修改输入的参数。
另外建议少用全局变量。