数据-我的matlsb版本是2014版的,运行下面的m程序会报错

问题描述

我的matlsb版本是2014版的,运行下面的m程序会报错

%N是数据一共分为多少类
%data是输入的不带分类标号的数据
%u是每一类的中心
%re是返回带标号的数据
function [u, re]=kmeans(data ,N)
[m, n]=size(data); %m是数据个数,n是数据维数
ma=zeros(n);%每一维最大的数
mi=zeros(n);%每一维最小的数
u=zeros(N,n);%随机初始化,最终迭代到每一类的中心位置
for i=1:n
ma(i)=max(data(:,i));%每一维最大的数
mi(i)=min(data(:,i));%每一维最小的数
for j=1:N
u(j,i)=ma(i)+(mi(i)-ma(i))*rand();%随机初始化,不过还是在每一维中初始化好些
end
end

while 1
pre_u=u;%上一次求得的中心位置
for i=1:N
tmp{i}=[];%公式一中的x(i)-uj,为公式一实现做准备
for j=1:m
tmp{i}=[tmp{i};data(j,:)-u(i,:)];
end
end
quan=zeros(m,N);
for i=1:m %实现公式一
c=[];
for j=1:N
c=[c norm(tmp{j}(i,:))];
end
[junk, index]=min(c);
quan(i,index)=norm(tmp{index}(i,:));
end
for i=1:N %公式二的实现
for j=i:n
u(i,j)=sun(quan(:,i).*data(:,j))/sum(quan(:,i));
end
end
if norm(pre_u-u)<0.1 %不断迭代直到位置不再变化
break;
end
end
re=[];
for i=1:m
tmp=[];
for j=1:N
tmp=[tmp norm(data(i,:)-u(j,:))];
end
[junk, index]=min(tmp);
re=[re;data(i,:) index];
end
end
//[m,n]=size(data);这一行会显示输入参数不足

解决方案

下面的sun应该是sum吧?
别的没看出有什么错误。

     for i=1:N %公式二的实现
        for j=i:n
            u(i,j)=sun(quan(:,i).*data(:,j))/sum(quan(:,i));
        end
    end

解决方案二:

嗯,是的,说打错了,谢谢!

时间: 2016-09-22
Tags: 数据

数据-我的matlsb版本是2014版的,运行下面的m程序会报错的相关文章

tomcat-Myeclipse10.7版本装Tomcat7.0,但是进行连接时,出现报错,请大神解答!

问题描述 Myeclipse10.7版本装Tomcat7.0,但是进行连接时,出现报错,请大神解答! 换过Myeclipse10.7版本准备装Tomcat7.0,就出现这错误,机子上还装有Eclipse.请问应该怎么做,求大神解答.在线等 解决方案 用15 稳定版,10版,个人觉得不好用, 解决方案二: 用低版本试试,版本太高了也容易出现问题 解决方案三: eclipse上貌似用不了tomcat吧,在myeclipse上找到tomcat7的路径,jdk路径也要正确

struts2+spring+mybatis 程序不报错,但是数据无法写入数据库

问题描述 struts2+spring+mybatis 程序不报错,但是数据无法写入数据库 执行到service 无法写入数据库,不报错.代码如下: <?xml version=""1.0"" encoding=""utf-8"" ?><!DOCTYPE mapper PUBLIC ""-//mybatis.org//DTD Mapper 3.0//EN""http:/

win7旗舰版系统打开组策略编辑器窗口出现报错怎么办?

  当咱们的win7 64位旗舰版下载电脑在遭遇一些系统故障的时候,咱们就需要在win7旗舰版系统中重新进行设置,重新进行调试,这样,咱们就可以将这错误的信息修改回来,保证win7旗舰版系统的正常运行了.而在这个重新设置的操作中,咱们经常都需要使用到的就是win7旗舰版系统中的组策略编辑器窗口了,打开组策略编辑器窗口中的方法很简单,咱们只需要打开win7旗舰版系统的运行窗口,然后在其中输入gpedit.msc并单击回车就可以了.         但是最近,却有使用win7旗舰版系统的用户表示,自

【springMVC 后台跳转前台】1.使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中 ----2.前后台都没有报错,不能进入ajax回调函数

问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示:    问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法不认识最后返回的是给ajax的data,而是以为要去找这个页面所以并未找到!! 1 @RequestMapping("/queryAllDisease") 2 @ResponseBody 3 public PageInfo<Disease> queryAllDisease

阿里云大数据利器Maxcompute学习之--数据同步任务常见日志报错总结

在使用大数据开发套件时最常用的就是数据同步模块,工单里最常见的问题就是其中数据同步的问题,这里总结一些常见一些从Maxcompute到其他数据源的同步任务报错案例,主要是日志中出现数据回滚写入的问题.   那首先看下日志中数据回滚的原因,当数据写入rds或者hybridDB等一些支持事务的数据库中,数据批量写入,一旦由于各种原因没有写入成功,这个批次的数据会回滚重新写入,如果再次写入失败,就会报脏数据的错误导致任务失败.数据写入失败可能是以下原因导致回滚.1,脏数据(数据值超过数据类型最大范围,

大数据开发套件中数据同步-日志报错回滚信息的一些问题总结

在使用大数据开发套件时最常用的就是数据同步模块,工单里最常见的问题就是其中数据同步的问题,这里总结一些常见一些从MaxCompute(原名ODPS)到其他数据源的同步任务报错案例,主要是日志中出现数据回滚写入的问题. 那首先看下日志中数据回滚的原因,当数据写入rds或者hybridDB等一些支持事务的数据库中,数据批量写入,一旦由于各种原因没有写入成功,这个批次的数据会回滚重新写入,如果再次写入失败,就会报脏数据的错误导致任务失败.数据写入失败可能是以下原因导致回滚.1,脏数据(数据值超过数据类

解决spring mvc 返回json数据到ajax报错parseerror问题

最近使用ajax接收spring mvc传过来的json数据时总是出现parseerror的错误,错误源码如下: 前端: $.ajax({ type: 'POST', url: "groupFunctionEdit", dataType: 'json', contentType: "application/json", data: JSON.stringify(functiondata), success: function(data){ alert('数据加载成功

《Wireshark数据包分析实战(第2版)》—第3章3.1节Wireshark简史

第3章 Wireshark入门Wireshark数据包分析实战(第2版)在第1章中,我们介绍了几种可以进行网络分析的数据包嗅探工具软件,但在本书中我们将只使用Wireshark,并在此章进行简要的介绍. 3.1 Wireshark简史Wireshark的历史相当久远,其最初的版本叫做Ethereal,由毕业于密苏里大学堪萨斯城分校计算机科学专业的Gerald Combs出于项目需要而开发,并于1998年以GNU Public Licence(GPL)开源许可证发布. 在发布了Ethereal 8

三星电子正式推出GALAXY Note 10.1(2014版)

摘要: [2013年9月23日,北京]全球数字媒体和数字融合技术领导厂商三星电子,于北京世贸天阶举办大型发布会,正式推出GALAXY Note系列新一代平板电脑GALAXY Note 10.1(2014版).三星秉承以消 [2013年9月23日,北京]全球数字媒体和数字融合技术领导厂商--三星电子,于北京世贸天阶举办大型发布会,正式推出GALAXY Note系列新一代平板电脑GALAXY Note 10.1(2014版).三星秉承"以消费者为中心"的研发理念,赋予了新版GALAXY N