matlab的全局变量(global),能在子函数中被改变么?

问题如下:
在我的matlab的workshop中有一全局变量p,
需要做一个递归函数,希望在函数的递归过程中,动态的改变p值,
最后我要得到p值的最终结果。

也就是说,我要实现的功能类似于c语言中的引用&。

网上的大多问题和例子都只限于在子函数中使用全局变量,而不对其改变。
请问有什么办法么?~谢谢大家~
最新回答
被刻印的时光ゝ

2025-02-24 20:51:28

在Matlab下输入:edit,然后将下面两行百分号之间的内容,复制进去,保存
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function y=global_p(x)
global p;
p=p+1;

y=1;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

返回Matlab
输入:
global p;
p=0;

x=0;
for i=1:5
temp=global_p(x);
end
p
下一站等候

2025-02-24 03:03:59

首先你得明白,MATLAB定义的pi是一个近似数
来自MATLAB帮助:The expression sin(pi) is not exactly zero because pi is not exactly .
pi returns the floating-point number nearest the value of pi,pi定义为一个浮点数,任何浮点数都会有量化误差,因为pi为无限不循环数,不可能有精确的浮点数