如何不共享变量与嵌套函数?

5个视图(过去30天)
托马斯·弗尔涅
托马斯·弗尔涅 2021年8月11日
编辑: 斯蒂芬。 2021年8月12日
你好,
我在一个单独的m.file文件中编写了一个大代码,这个代码包含函数。然后我想用这个大代码生成一个函数,但是,通过这样做,我创建了嵌套函数,并且,由于这些函数共享相同的变量名,因此没有任何东西能够正常工作。
是否有一种精确的方法,使函数内部的嵌套函数不应该与主函数共享变量,也不应该与其他函数共享变量?
谢谢你的帮助!
2的评论

登录评论。

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2021年8月12日
你写了一个这样的剧本
一些密码
作用第一
%的东西
结束
作用第二
某物
结束
你把它转换成一个函数 作用 开头的行和 结束 最后,就像
作用do_stuff
一些密码
作用第一
%的东西
结束
作用第二
某物
结束
结束
你应该做的是
作用do_stuff
一些密码
结束%在这里结束,而不是底部
作用第一
%的东西
结束
作用第二
某物
结束

更多的答案(2)

达洛瓦
达洛瓦 2021年8月11日
编辑:达洛瓦 2021年8月11日
如果在嵌套函数中声明函数或变量,它会重写自身。没有错误的选择
作用主要的
= 2;
b = 3;
a + b
作用nest1
= 5;
a + b
结束
a + b
结束
4评论
斯蒂芬。
斯蒂芬。 2021年8月12日
“但是为什么 一个 价值 主要的 改变了吗?”
共享变量在MATLAB文档中解释:

登录评论。


杰夫•米勒
杰夫•米勒 2021年8月11日
这听起来像是你的“大代码”是一个脚本而不是一个函数,但现在你想用它来创建一个函数。
我建议您从“大代码”脚本中删除这些函数,并将它们放在单独的文件中。然后将“大代码”生成一个函数,但这些其他函数将不再嵌套,因此每个函数都有自己的独立变量。

s manbetx 845


释放

R2020b

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始打猎吧!