0
我有以下的“父”的代码,把它solve.m
:如何从父代码加载变量?
s1 = .01;
v = 1;
fun1 = @rootd;
x0 = [.2, .3, .4]
options = optimset('MaxFunEvals',100000,'MaxIter', 10000);
x1 = fsolve(fun1,x0, options)
我也有下面的代码功能rootd.m
function D = rootd(x1)
F = @(p) 1 - ((3.*x1(3).^2 - 7.*x1(3) + 6).*(x1(2)./p -1))./(2.*x1(3).*(1-x1(3)));
H = @(p) (1 - ((3.*x1(3).^2 - 7.*x1(3) + 6).*(x1(2)./p -1))./(2.*x1(3).*(1-x1(3)))).^2;
F1 = @(p) 1 - ((6 - 7.*x1(3) + 3.*x1(3)^2).*(min(v,x1(2))./p - 1))./(2.*x1(3).*(1-x1(3)));
H1 = @(p) (1 - ((6 - 7.*x1(3) + 3.*x1(3)^2).*(min(v,x1(2))./p - 1))./(2.*x1(3).*(1-x1(3)))).^2;
g = @(p) integral(@(p) F(p), x1(1), x1(2));
f = @(p) integral(@(p) F1(p), x1(1), (min(v,x1(2))));
h = @(p) integral(@(p) H1(p), x1(1),(min(v,x1(2))));
D(1) = g(x1) - s1;
D(2) = x1(3).*(2-x1(3)).*(v - min(v, x1(2))) - (((x1(3)^2)/2).*h(x1)) + (2.*x1(3)...
- (1/2).*x1(3).^2).*f(x1) - ((v-min(v, x1(2))) + f(x1) -s1);
D(3) = (6 - 7.*x1(3) + 3.*x1(3)^2).*min(v, x1(2))./((2-x1(3)).*(3-x1(3))) - x1(1);
end
当我运行父代码,我得到:
未定义的函数或变量's1'。
我明白,我需要在rootd.m
功能来定义变量s1
。但我希望该功能自动从solve.m
加载s1
。
什么郎?将它放在标签中 – driconmax
您必须在引用的笔记本中输入符号。 (如果不同的* .m包含相同的符号,系统如何“自动”知道你的意思?!) – BadZen