>我正在使用递归函数,但我想存储 cp 和轴向的所有中间值。但是我想不通
[cp,axial]=powerCoefficient(nturbines)
function [cp,axial]=powerCoefficient(iturbines)
if iturbines==0
cp=0;
axial=0;
else
syms a
expression=matlabFunction(4*a*(1-a)^2+(1-2*a)^3*powerCoefficient(iturbines-1));
diff1=diff(expression,a);
solution=double(solve(diff1));
axial=solution(find(solution >0 &solution<1));
cp = expression(axial);
end
end
我将不胜感激。提前感谢!
我相信
这应该有效,但在速度等方面不会是最佳的。
[cp, axial] = powerCoefficient(nturbines, cp, axial)
function [cp, axial]=powerCoefficient(iturbines, cp, axial)
if iturbines == 0
cp(end + 1) = 0; % or just (end)
axial(end + 1) = 0; % or just (end)
else
syms a
expression=matlabFunction(4*a*(1-a)^2+(1-2*a)^3*powerCoefficient(iturbines-1));
diff1 = diff(expression, a);
solution = double(solve(diff1));
axial(end + 1) = solution(find(solution > 0 & solution < 1));
cp(end + 1) = expression(axial(end + 1);
end
end
如果你在这里和那里使用空间,它更容易阅读=)