作业帮 > 综合 > 作业

matlab 原函数为function y=mytest(x) x=x+5;y=x*2;能正确运行,但是x只是在函数变量

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/07 20:50:56
matlab 原函数为function y=mytest(x) x=x+5;y=x*2;能正确运行,但是x只是在函数变量区有效
matlab 原函数为function y=mytest(x) x=x+5;y=x*2;其中的x修改只在函数变量区有效,所以我把它改了改,function y=mytest(x) x=x+5;y=x*2;x=x;然后运行就不是预期的结果了,请给我讲解一下,我的函数怎么解?
匿名函数myffhd =@(a)(quad(@(x)(a.*x^2+1./a.*x+1./a^2),0,1))
myffhd(0.5)的运行结果怎么不是5.1667,还出错?
函数
function[y1,y2]=mytestnio(x1,x2)
if nargin==1
y1=x1;
if nargout==2
y2=x1;
end
else
if nargout==1
y1=x1+x2;
else
y1=x1;
y2=x2;
end
end
当在command window 中键入mytestnio(5,7)时结果是ans=5.但是我觉得这个命令中有另个输出,2个输入,在前面函数定义中没有与之对应的if语句或是else语句啊,这个怎么理解?
第一个问题:
两种情况都一样,function不会改变x的值,因为输入的只是x的一个拷贝,又没输入x的地址
第三个问题
你用mytestnio(5,7),结果只会输出y1的值,但你用[y1,y2]=mytestnio(5,7),会输出两个值,我觉得你可以这样,function a=mytestnio(x1,x2)
在函数里面用a(1)=?a(2)=?这样系统默认的ans就会指向a,就会按要求输出数值或是向量
第二个问题
我看看,我不知道@的用法