当前位置:编程学习 > Matlab >>

matlab编写归一化程序编成function函数(对任意数据)。函数入口参量为最大值max,最小值min,变量个数n。

y为输出数据,x为输入数据。y=(x-MinValue)/(MaxValue-MinValue) 说明:x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。 附详细程序 解释一下程序的过程。 高手指点,十分感谢!
追问:这个程序执行完之后怎么结果都是0.
帮忙在看一下。
答案:你的函数形参只需要待归一化的数据矩阵X即可
function y = Normalize(X)
%X是m*n数组,n是变量数目,m是每个变量所拥有的数据数目,因此一列表示一个变量的所有取值
[m,n] = size(X);
for i = 1:n
y(:,i) = (x(:,i) - min(X(:,i))/(max(X(:,i) - min(X(:,i));
end
%为了防止max(X(:,i)) - min((X(:,i)) = 0使得分母为0,建议先做判读,

for i = 1:n
   if max(X(:,i)) == max(X(:,i))
      y(:,i) = (x(:,i) - min(X(:,i))/max(X(:,i)) ;
  else
    y(:,i) = (x(:,i) - min(X(:,i))/(max(X(:,i) - min(X(:,i));
  end
end
其他:
 你的问题本身有问题,你的函数输入参数应该是x,输出应该是y吧 

上一个:matlab编程:
下一个:谁能帮我解释一下这段matlab程序?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,