输出参数过多错误:MATLAB
我刚开始学习MATLAB,我正在寻求关于如何使函数使用更多参数的建议 我建立了这个公式:输出参数过多错误:MATLAB,matlab,function,Matlab,Function,我刚开始学习MATLAB,我正在寻求关于如何使函数使用更多参数的建议 我建立了这个公式: I = real((U0.*exp(i.*vw.*vt))./(L.*(-vw.^2+ (R/L).*i.*vw + (1/L.*C)))) + ... exp((-R.*vt)./(2.*L).*( alpha.*cos( sD.*vt)+ beta.*sin( sD.*vt))); 因此,我需要U0,vw,vt,L,R 如果我将其放在命令窗口中: D = (1/L*C)-((R^.2)/(4*
I = real((U0.*exp(i.*vw.*vt))./(L.*(-vw.^2+ (R/L).*i.*vw + (1/L.*C)))) + ...
exp((-R.*vt)./(2.*L).*( alpha.*cos( sD.*vt)+ beta.*sin( sD.*vt)));
因此,我需要U0
,vw
,vt
,L
,R
如果我将其放在命令窗口中:
D = (1/L*C)-((R^.2)/(4*L^.2));
sD = sqrt(D);
vt = linspace(tmin,tmax,200);
vw = omega;
[vw,vt] = meshgrid(vw,vt);
I = real((U0.*exp(i.*vw.*vt))./(L.*(-vw.^2+ (R/L).*i.*vw + (1/L.*C)))) + exp((-R.*vt)./(2.*L).*( alpha.*cos( sD.*vt)+ beta.*sin( sD.*vt)));
surf(vw,vt,I)
它很好用
所以,现在我想创建一个函数,它读取值并计算上面的所有内容,然后返回一个surf
plot
我的尝试:
function [u] = test(L,C,R,tmin,tmax,omega,U0)
D = (1/L*C)-((R^.2)/(4*L^.2));
sD = sqrt(D);
vt = linspace(tmin,tmax,200);
vw = omega;
[vw,vt] = meshgrid(vw,vt);
I = real((U0.*exp(i.*vw.*vt))./(L.*(-vw.^2+ (R/L).*i.*vw + (1/L.*C))))+exp((-R.*vt)./(2.*L).*( alpha.*cos( sD.*vt)+ beta.*sin( sD.*vt)));
surf(vw,vt,I)
end
出现以下错误:
使用alpha时出错输出参数过多
你知道如何使这个函数工作吗?什么是
alpha
?它很可能存在于您的工作区中,所以当您从工作区调用这些行时,一切都很好。但是,在test
函数中,MATLAB没有“基本”工作区的可见性,并且alpha
不存在!将其作为参数传递或像其他值一样定义。与测试版相同
此外,您还在函数中定义了输出参数
u
% Ouput vvv
function [u] = test(L,C,R,tmin,tmax,omega,U0)
但是在函数执行过程中,您从未为变量u
分配过任何内容”。如果要返回surf
figure对象,请在调用该对象时将其分配给u
% Square brackets not needed as only returning one variable
function u = test(L,C,R,tmin,tmax,omega,U0)
% ... stuff
u = surf(vw,vt,I)
end