声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2589|回复: 18

[编程技巧] 连续运行run(*.m),数据不更新,求破

[复制链接]
发表于 2012-6-3 21:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
这个M文件是由其它软件自动生成的,因为计算数目比较大,所以不好对*.m这个文件进行修改。。。
现在是先run(*.m),clear all之后再run(*.m)可以让数据更新,但是clear all会清空所有数据
但是将*.m文件的数据内容单独clear以后,运行run(*.m),数据没有更新,我想clear这个缓存的数据,应该怎么操作。。。
回复
分享到:

使用道具 举报

 楼主| 发表于 2012-6-3 21:52 | 显示全部楼层
有没有大神知道怎么回事啊,万分感谢~
发表于 2012-6-4 00:29 | 显示全部楼层
个人水平有限, 没看懂问题!
 楼主| 发表于 2012-6-4 15:32 | 显示全部楼层
回复 3 # ChaChing 的帖子

是我表达的不够清楚吧

大概程序是这样
for i=1:N
%脚本循环更新tmpMatrixData中的数据。
    run('d:\temp\tmpMatrixData.m');
end

在程序多次运行run的时候,程序里面的数据没有更新。


还是谢谢哈
发表于 2012-6-5 00:47 | 显示全部楼层
回复 4 # 巴朵兰恩 的帖子

1.tmpMatrixData.m ?
2.脚本循环更新tmpMatrixData中的数据?
 楼主| 发表于 2012-6-5 09:49 | 显示全部楼层
回复 5 # ChaChing 的帖子

是在那个for里面循环,不是单独循环着的,每运行一次脚本产生一个新的tmpMatrixData.m
发表于 2012-6-6 22:48 | 显示全部楼层
把程序发上来看看

点评

赞成: 5.0
赞成: 5
  发表于 2012-6-7 00:25
发表于 2012-6-15 16:00 | 显示全部楼层
初学者,同遇这个问题,就是在一个脚本文件aa.m中使用run([e\...\bb.m])调用另外一个文件夹中的脚本文件bb.m(例如只有一条语句b=2),但是在bb.m中更改b=3后重新运行aa.m,b的数据并没有由2变为3,怎么办?必须关掉matlab并重启,b才会更改为3。郁闷中,请问各位前辈这是什么问题,如何解决?

评分

1

查看全部评分

发表于 2012-6-17 00:46 | 显示全部楼层
1.run([e\...\bb.m]) ???
应该是 run C:\MATLABR11\work\bb.m或run('C:\MATLABR11\work\bb.m')
Ref: 4.呼叫函数的方式 http://forum.vibunion.com/thread-75501-1-1.html
2.奇怪, 复製不出LS的错误问题!:@)
3.LS确定在bb.m中更改b=3后有先存档吗!?
发表于 2012-6-17 10:20 | 显示全部楼层
回复 9 # ChaChing 的帖子

1.抱歉对matlab语法还不太熟。我的代码是这样的run('C:\Users\travel\Desktop\bb.m')
3.确定,经尝试后来发现如果这个bb.m和aa.m在一个路径下(当前工作路径),在bb.m中更改的数据就可以立马生效;如果bb.m不和aa.m在同一个路径下,比如在C:\Users\travel\Desktop\bb.m就不行,必须关闭matlab后在bb.m中更改的数据才能生效。——而不是“巴朵兰恩”说道的是因为循环的原因!
2.请您试下,肯定是有这个问题的。

初学matlab,赶鸭子上架,遇到这种问题,还望各位前辈指点一二。
发表于 2012-6-17 23:24 | 显示全部楼层
回复 10 # travel09 的帖子

不在同一个路径下, 仍然复製不出LS的错误问题!?
或许LS应交代更清楚些/更多资讯
发表于 2012-6-18 09:04 | 显示全部楼层
C:\Users\travel\Desktop\代码.png
发表于 2012-6-18 09:23 | 显示全部楼层
代码.png
谢谢ChaChing的耐心回复!
抱歉,刚才图片没有显示。我的问题所有涉及到的操作说明如下:
1、当前工作路径下只有一个main.m文件(如图),代码如下:
  1. clc
  2. run('C:\Users\travel\Desktop\a.m')
复制代码
2、run语句运行的a.m文件在桌面(如图),代码如下:
  1. abc=3
  2. disp('ccccc')
复制代码
3、运行main.m文件,成功,然后更改a.m文件代码如下并保存:
  1. abc=2
  2. disp('dddddddddd')
复制代码

4、最后,所上传的图片显示的是步骤3的运行结果,abc依然为3,disp依然显示ccccc。这是为什么呢??

这个问题很困扰我,只能描述成这样了,可能表述不清,但尽力了,还望各位前辈高人指点!

发表于 2012-6-18 10:31 | 显示全部楼层
回复 13 # travel09 的帖子

喔, LS的附图提醒了我俩的差异, LS是使用不同的编辑器(UltraEdit/matlab Editor), 而我使用相同编辑器(matlab Editor)
等回找时间试下
发表于 2012-6-18 14:26 | 显示全部楼层
回复 13 # travel09 的帖子

找时间试了下, 的确如LS所说的, 但试过rehash也没效, 试各可能性还是没能找到原因
最不可想像的是, 原先使用R2009a试, 现象同LS所说, 但又试了下旧版本v5.3, 竟然无此现象
旧版一切正常, 新版反而出现不合理现象!
汗, 同待高人路过
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-18 06:11 , Processed in 0.129007 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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