Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2007-06-09
帖子: 4
声望力: 0 ![]() |
![]()
[m,n]=size(x);
if m==1 m=n; end s1=sum(x);s2=sum(x.^2); mean1=s1/m; sdtev=sqrt(s2/m-mean1.^2); 这是我编的程序,运行时出现 "??? Undefined function or variable "x". Error in ==> stat1 at 1 [m,n]=size(x);" 为什么会出现这种情况呢? |
![]() |
![]() |
![]() |
#2 |
游客
帖子: n/a
|
![]()
x没赋值啊,当然不存在x这个变量了
|
![]() |
![]() |
#3 |
初级会员
注册日期: 2007-06-09
帖子: 4
声望力: 0 ![]() |
![]()
这是在edit里编辑的呵,是一个被调用的函数,会在调入之前给他值的,但是还是显示:“??? Input argument "x" is undefined.“
|
![]() |
![]() |
![]() |
#4 |
初级会员
注册日期: 2007-05-19
帖子: 13
声望力: 18 ![]() |
![]()
我不知道你在那里给x调入数据的,如果在一开始的时候给它调入,就可以运行,其程序可以为:
clear;clc x=[11 22 33 44 55 66 77 88 99]; [m,n]=size(x); if m==1 m=n; end s1=sum(x);s2=sum(x.^2); mean1=s1/m; sdtev=sqrt(s2/m-mean1.^2) 其结果: sdtev = 28.4019 如果你不是在这个时候调入的话,而且要它运行的话可以在一开始就这样: syms x 加了这个就可以运行了 如果你想做个函数的话,在任何时候都可以调入运行,可以这样: function y=abc(x) [m,n]=size(x); if m==1 m=n; end s1=sum(x);s2=sum(x.^2); mean1=s1/m; sdtev=sqrt(s2/m-mean1.^2) 不过你要注意,其文件名要是abc.m 如果是其他的就会有你刚才的错误!!! 如果直接运行是跟你有同样的错误,不过不要怕,没问题的,运行时要这样调入: x=[11 22 33 44 55 66 77 88 99];abc(x) 其结果为: sdtev = 28.4019 跟上面一样,现在就可以调入任何的矩阵,就可以得出结果了!!! 有什么问题就找我吧!!! |
![]() |
![]() |
![]() |
#5 |
初级会员
注册日期: 2007-06-09
帖子: 4
声望力: 0 ![]() |
![]() |
![]() |
![]() |