我们可以配置MATLAB让变量的局部作用域最小吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们可以配置MATLAB让变量的局部作用域最小吗?相关的知识,希望对你有一定的参考价值。
我们可以配置MATLAB让变量的局部作用域最小吗?
我想让Matlab类似于下面的C。
% after some configure ...
for i=1:1:100
a=i*i
end
% here we can not using 'a' any more for it have local scope in for loop.
为什么我要这样,因为整个脚本的作用域有时会导致难以找到错误。
例如:
% get accumulate of b via 100 times of x_0
b=0;
for i=1:1:100
x0=100
b=b+x0
end
% get accumulate of a via 100 times of x_0
a=0
for i=1:1:100
x_0=200
a=a+x0 %mistype x_0 to x0, and hard to find
end
谢谢。
答案
我认为没有任何方法可以在脚本/循环中强制使用本地作用域。但是,您可以在单独的文件或in the same file中创建函数。每个函数都有自己的本地范围。因此,对于您的示例,您可以使用以下内容创建文件myScript.m
:
% get accumulate of b via 100 times of x_0
accum_b(100)
% get accumulate of a via 100 times of x_0
accum_a(200)
function a = accum_a(x0)
a = 0;
for k = 1:100
a = a + x0;
end
end
function b = accum_b(x0)
b = 0;
for k = 1:100
b = b + x0;
end
end
在此特定示例中,您当然可以使用不同的accum_a
输入调用两次x0
函数。但是,您在文件中定义的每个函数都将具有其自己的局部作用域,因此在错误地输入x_0/x0
时将导致错误。
以上是关于我们可以配置MATLAB让变量的局部作用域最小吗?的主要内容,如果未能解决你的问题,请参考以下文章