登录论坛

查看完整版本 : 求助:有关matlab函数的问题


xieyunfei
2009-05-01, 10:34
我编辑了以下一个函数:
function y=wes(w1,i,u,b)
%函数名:wes
%函数功能:计算成绩累加和
%参数:w1,i,u,b
y=(w1-u/b)*exp(-(i-1)*b)+u/b
在函数编辑窗口run一下,显示如下信息:
??? Input argument "w1" is undefined.

Error in ==> wes at 5
y=(w1-u/b)*exp(-(i-1)*b)+u/b
我硬着输入y=wes(2,2,1,1)
输出结果是:
y =

1.3679


y =

1.3679
有两个y,为什么?请帮忙改一改,谢谢!

laosam280
2009-05-01, 16:44
y那句话后面没有分号啊,楼主。加个分号就可以了。。。。
function y=wes(w1,i,u,b)
%函数名:wes
%函数功能:计算成绩累加和
%参数:w1,i,u,b
y=(w1-u/b)*exp(-(i-1)*b)+u/b;

xieyunfei
2009-05-02, 08:22
谢谢laosam280!
没有分号的问题后来我也发现了,但每运行一次系统老给我错误警告,我算了一下,输出结果是没有错的.我想问一下怎么能消除这个警告呢?
谢谢.

xieyunfei
2009-05-02, 08:31
谢谢,能否再帮我看看.

zlhxln
2009-06-29, 05:41
function y=wes(w1,i,u,b)
%函数名:wes
%函数功能:计算成绩累加和
%参数:w1,i,u,b
y=(w1-u/b)*exp(-(i-1)*b)+u/b;
end
y=wes(2,2,1,1)

y =

1.3679
没有警告的,可能版本问题,7.0以下版本对格式输入比较严格。我在用的是7.8

cfchenchen
2009-06-30, 22:26
朋友, 我大概知道你怎样出错了,你是不是让函数单独运行了啊.这样肯定出错了.
错误是这样的:
??? Input argument 'w1' is undefined.
Error in ==> C:\MATLAB6p5\work\wes.m
On line 2 ==> y=(w1-u/b)*exp(-(i-1)*b)+u/b;
对吗?
直接在M文件中建立一个函数即可:
function y=wes(w1,i,u,b)
y=(w1-u/b)*exp(-(i-1)*b)+u/b;

函数名自动命名为wes.m.
在命令窗口中:
输入:
y=wes(2,2,1,1)
结果:
>> y=wes(2,2,1,1)

y =

1.3679
没有任何问题的啊!!!