关于2个独立脚本中变量名相同导致运行冲突的问题...

在使用julia完成几个功能后,我遇到了2个问题:
1、2个独立脚本,各自完成完全的不同的功能,其中几个变量名设置是相同的,在运行的时候报错。例如“ERROR: invalid redefinition of constant f”。请问julia是否有类似matlab“clc”之类的方法?
2、生成的1个图片,再次运行程序时图片没有更新,仍然为原先的生成时间,我删除时会提示图片正在使用,大家是否遇到过?

关于第一个问题:这个错误意思是你改变了某个constant变量的类型。Julia不存在Matlab中clc的用法。一般类似的情况,我会建议调整变量的作用域(减少global scope variables的数量),或者通过重新命名变量来理清逻辑。

关于第二个问题:需要具体代码才能看看。Windows上面似乎会有类似的报错。

1 独立脚本怎么运行的,用 vscode julia: run file in new process 了吗?
2 是Windows, 写入图片后没有关闭文件?

Julia 的函数和变量是区分开的,这个错误可能是把函数赋值为变量,或者结构体重定义:

# 函数赋值为变量
f(x) = 1
f = 2
# 结构体重定义
struct foo end
struct foo; a; end
# 常量重定义,不过似乎只会报 warning
const a = 1
a = 2 # warning

这应该和 Julia 的特性有关。

一个解决方案是把脚本放在独立的 module 里,变量名不干扰

moduel xxx
end

使用vscode, 用了“Julia:Ececute active File in REPL”。
我是直接使用save(fig_name, N0f16.(img_diff))保存图片的,怎么关闭文件?

我是直接使用save(fig_name, N0f16.(img_diff))存储图片的。

第二个问题建议贴相关部分的代码 :joy:

cd("D:\\JuliaLang\\beginToLearn")
fignamexy1 = "OH" * "_" * basename(path1)[1:14] * "_geoxy" * ".png"
fignamexy2 = "OH" * "_" * basename(path2)[1:14] * "_geoxy" * ".png"
geotransform_xy_tmp = (geotransform_xy .- min(geotransform_xy...)) ./ (max(geotransform_xy...) - min(geotransform_xy...))
save(fignamexy2, N0f16.(geotransform_xy_tmp))