专栏
标签
代码报错:未定义问题
一般问题
发布于 2024-12-17 21:01:39
查看 26过去558天

您好!
我这里的num在上文中已经定义了,为什么还会显示未定义。
(后面的subplot的使用,是为了在一张图上分别画出四个函数图像)
我自己尝试删除for循环中的num和subplot,发现只会出现一张图片,该图片仅有一个函数图像。
errord.png

using TyBase
using TyMath
using TyPlot
clear()
plt_close("all")

wc = 0.4*pi
num = 0
len = [81 61 41 21]

for l in len
temp = (l-1)/2
n = -temp:temp
h = wc / pi * sinc.(wc .* n / pi)
H0 = fft(h)
H = fftshift(H0)

num = num + 1;
subplot(2,2,num)  

stem(abs.(H))
xlabel("w")
ylabel("幅度")

end
tightlayout()

所属专栏:Julia语言
产品信息:Syslab科学计算环境
科学计算
采纳的回答
发布于 2024-12-18 09:05:00

您好,您的问题中涉及到了作用域,for循环中为局部作用域空间,您在for循环外定义了变量num,循环内只能读取使用,无法修改,但是您的num=num+1对num进行了修改,因此需要声明循环内num的全局性,可以在for循环内加上global num即可解决此问题。

全部回答 2

发布于 2024-12-17 21:03:08

代码文本为啥会出现代码框啊,我直接复制过来的(笑哭)

发布于 2024-12-18 09:05:00

您好,您的问题中涉及到了作用域,for循环中为局部作用域空间,您在for循环外定义了变量num,循环内只能读取使用,无法修改,但是您的num=num+1对num进行了修改,因此需要声明循环内num的全局性,可以在for循环内加上global num即可解决此问题。

用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天