设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 1819|回复: 7

求助:maltab运行出错

[复制链接]

该用户从未签到

尚未签到

发表于 2009-8-9 12:49:00 | 显示全部楼层 |阅读模式

马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

您需要 登录 才可以下载或查看,没有账号?立即加入

×
调试时,我在程序里设置一个断点,但是程序运行到断点时,下面还没有运行的变量竟然也在空间里出现了,这些变量存储的有的是之前的运行结果有的根本就是预期之外的结果。问题是我在运行之前已经用clear清空了工作空间。我的程序里有全局变量,我试过,如果把全局变量声明去掉就没这个问题了,但是我必须得用全局变量,希望得到朋友们的指点,谢谢。
"真诚赞赏,手留余香"
还没有人打赏,支持一下
楼主热帖
帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
    发表于 2009-8-9 12:55:22 | 显示全部楼层
    如果声明了 全局变量,这个量自第一次遇到后,就一直存在,不会消失。& T+ T; \( {4 |- C) y7 T6 d# u
    ; C7 F# h8 \% s
    在遇到新的赋值,它的值就会改变。' s% k  w; y2 G+ J7 U

    6 ]% E  o- X' h请把你的问题在详细说明一下。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
    发表于 2009-8-9 12:56:59 | 显示全部楼层
    也可以把你的源代码简化一下列出,更好的阐述你的问题
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

     楼主| 发表于 2009-8-9 13:17:50 | 显示全部楼层
    global  L2  R2  X  D / Q* d% E) ?( x
    load('d:\Program Files\MATLAB71\work\cti1.mat');(比如,我在此设置一个断点): R) r6 N% S: |2 A' g; J8 Q
    i1=I1(2,:)$ h9 j9 s0 z# @6 d( c& l( m
    L2=0.007 ; R2=5# f1 i3 n8 a0 k6 O5 ]
    运行到断点停止后,我查看工作空间,发现L2 R2已经有了值,L2 R2赋的事前一次运行结果,但是D的值在前一次就没有结果啊。我在运行之前就清空了空间,很显然以前的结果还是载入了工作空间,我就搞不懂了。而且以前也就这样运行一直没碰到过这样的问题。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

     楼主| 发表于 2009-8-9 13:18:30 | 显示全部楼层
    希望版主能帮我看下 谢谢了
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

     楼主| 发表于 2009-8-9 13:26:13 | 显示全部楼层
    如果声明了 全局变量,这个量自第一次遇到后,就一直存在,不会消失。$ U# |6 m! A3 o8 D" Q" G: A5 a+ O$ T

    * b9 g; f. i9 D5 ]% a" I在遇到新的赋值,它的值就会改变。
    ' K0 d0 y* c8 ?$ Z2 t# E+ k" x4 }% k
    * }. U0 E3 S% I! b请把你的问题在详细说明一下。
    / o; T) ]1 l( T) D晓夜寒风 发表于 2009-8-9 12:55

    . c0 F, g, H; K* G4 Y2 o我想是全局变量的问题,1)因为我重启一次matlab就没有这个问题了,2)如果把全局变量去掉,就没这个问题了,当然后面用到全局变量的地方也不能算了。不过我还是不明白,我每次运行之前都会清空工作变量空间,这样还不行吗
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
    发表于 2009-8-9 13:49:02 | 显示全部楼层
    好的 我现在要出去一下 晚上一起研究! 谢谢
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    慵懒
    2017-7-12 08:29
  • 签到天数: 7 天

    连续签到: 2 天

    [LV.3]偶尔看看II

    累计签到:7 天
    连续签到:2 天
    发表于 2009-8-9 20:56:52 | 显示全部楼层
    global  L2  R2  X  D
    + G! k- W8 H7 n8 Sload('d:\Program Files\MATLAB71\work\cti1.mat');(比如,我在此设置一个断点)
    1 u0 {' _2 X+ E' t4 O4 {i1=I1(2,:)3 l  O, R) E1 `! F5 W/ f2 v
    L2=0.007 ; R2=5
    ; s2 ^9 A2 ?# n+ ^运行到断点停止后,我查看工作空间,发现L2 R2已经有了值,L2 R2赋的事前一次 ...$ A, N& |+ U. m" `
    jack2008 发表于 2009-8-9 13:17
    4 L1 U5 C& e' r
    9 W5 Z3 v7 e* ]4 R" ^! g* j0 B

    " C# A0 k& [% j: L4 p建议楼主不要使用 clear,
    2 Y5 `5 p2 k8 H5 I4 S& _% Q0 [而是 在程序开始的时候 使用 clear global L2 R2 X D! O$ V8 t% Y2 ~4 q- l
    要加上 “global”,这样才可以真正删除这几个全局变量!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2025-2-23 10:21

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表