我是一个matlab小白,前几天刚准备学习机器学习的相关知识,但是下面的代码一直提示我“位置1处的索引超出数组边界(不能超过1)”。

好像出错在71行的“ans(j,:)=u(j,i)^2*k_dist(j,i)*data(j,:);”,我这里的“data=168*2 double”。请各位大神帮帮忙,谢谢

function [c,u,dist]=self_kfcm(data,k,iter,err,w)
%c 返回各类中心
%u 返回隶属度矩阵
%dist 返回各类内距离之和
%data 数据集
%n 希望聚成的类数
%iter 迭代数
%err 最小误差
%w 高斯核函数的宽度
%%
%初始化
[m,n]=size(data);
c=zeros(k,n);
u=zeros(m,k);
dist=[];
%%
%确定初始类中心
for i=1:kc(i,:)=data(i,:);
end
%%
k_dist=zeros(m,k);
for t=1:iterdisp(c);%各点与各类中心的距离(一部分)for i=1:mfor j=1:kk_dist(i,j)=exp((-1/(w^2))*((data(i,:)*data(i,:)'+c(j,:)*c(j,:)'-2*data(i,:)*c(j,:)')));endend% disp(k_dist);%disp('**************************************************')%隶属度计算for j=1:mfor l=1:ku(j,l)=(1-k_dist(j,l))^(-1);endend%  disp('一部分u')% disp(u);data=0;u_copy=u;for i=1:m     for l=1:kdata=sum(u_copy(i,:));u(i,l)=(u(i,l)/data);endendu(isnan(u))=1;%  disp(u);%距离计算dist_k=zeros(1,k);for l=1:kdist_k(1,l)=2*((u(:,l).^2)'*(1-k_dist(:,l)));enddist=[dist,sum(dist_k)];if length(dist)>=2err1=abs(dist(length(dist)-1)-dist(length(dist)));if err1<=errdisp('达到误差要求');disp('当前迭代次数为:');disp(t)break;endend%重新确定类中心pre_c=c;ans=zeros(m,n);for i=1:k  for j=1:mans(j,:)=u(j,i)^2*k_dist(j,i)*data(j,:);endc(i,:)=sum(ans)/(sum((u(:,i).^2)'*(k_dist(:,i))));end%  disp(ans);if pre_c==cdisp('类中心不变');disp('当前迭代次数');disp(t)break;end   %  disp(c)% disp('~~~~~~~~~~~~~~~~~~~~~~~~~~')if t==iterdisp('迭代次数用尽')end
end

Matlab中出现“位置1处的索引超出数组边界(不能超过1)”相关推荐

  1. 位置2处的索引超过边界总数matlab,位置 2 处的索引超出数组边界(不能超出 2)。...

    想使用fmincon函数优化求微分方程的参数,写完程序之后提示这个错误,大佬们能不能帮我看看哪里错了? 也帮忙看一下我写的程序对不对,有没有有需要改正的地方. k0=[0.023 0.000613 0 ...

  2. matlab处理数据,提示“提示位置1处的索引超出数组边界。不能超出1”,这该怎么处理呢

  3. 求助:matlab报错:位置 2 处的索引超出数组边界(1)

    代码 clear all; %clc; I=eye(3); K=2; M=eye(3);N=eye(3); qd=[0 0 0]'; qd0=1;%期望四元数 Wd=[0 0 0]';%期望角速度%- ...

  4. matlab报错:位置 2 处的索引超出数组边界(不能超出 3)。

    原因: for i=1:1:a     jieguo_data(i,1)=xingzuo_data(i,1);     jieguo_data(i,2)=xingzuo_data(i,2);     ...

  5. MATLAB位置1无法索引,位置 1 的索引超出数组范围(不能超过 1)

    clear clc; N=512; L=512; f1=300;fs=15000; T=1/fs; ws=2*pi*fs; t=(0:1:N-1)*T; x=sin(2*pi*f1*t); y=fft ...

  6. php 数组大于1,位置 1 的索引超出数组范围(不能超过 1)。

    %清空运行环境 clc clear %速度更新参数 c1 = 1.49445; c2 = 1.49445; maxgen = 300; %最大迭代次数 sizepop = 20; %种群规模数 %个体 ...

  7. 位置2的索引超出数组范围不能超过10_golang学习笔记--切片slice 与数组 arr

    因为我是写php的,刚开始写go的时候老是被数组坑.因为在go中的数组是固定长度,所以会存在越界的时候.而在go中也很少直接使用数组.更多的时候会使用slice(切片). 数组 数组是一个由固定长度的 ...

  8. c/c++中索引超出数组边界问题

    C/C++没有数组 在其它高级语言里,不管是定义(声明)还是引用, a[i] 或 a[3] 都是一个整体.在 C/C++ 里,却是一个表达式: a[i] 是运算符 [] 连接两个实体 a 和 i . ...

  9. matlab中的元包素组索引

    matlab中的元包素组索引 简介 单元索引 内容索引 复杂一点的情况 简介 matlab中的元胞数组是一种数据类型,该类型的元素本质上是索引,因此元胞数组能够容纳任何一种数据类型,可自包含.元胞数组 ...

最新文章

  1. xib文件的加载方法
  2. ❤️ 爆肝一个月!JAVA零基础入门总结(上)❤️
  3. Linux | 编译原理、gcc的命令参数、自动化构建工具 make/Makefile
  4. 求你了,别再说Java对象都是在堆内存上分配空间的了!
  5. 【C语言】创建一个函数,利用该函数将两个字符串连接起来
  6. docker cp :用于容器与主机之间的数据拷贝
  7. 【Elasticsearch】es Elasticsearch HQ 介绍
  8. bzoj 1010: [HNOI2008]玩具装箱toy
  9. CTF_BUGKU_WEB_game1
  10. Pandas 安装到Pycharm
  11. 最后两星期,怎么过6级?(最快攻略)
  12. (Scrapy框架)爬虫获取新冠疫情数据升级版 | 爬虫案例
  13. Linux基础知识篇二
  14. android 手机 投影,100吋1080p 看Android双核手机连投影
  15. 打开GitHub官网缓慢
  16. WECHAT 微信扫码关注公众号方法无法获取头像和昵称了
  17. (附源码)计算机毕业设计SSM绩效考核管理系统
  18. Scalar数据类型
  19. Linux 内核源码中likely()和unlikely()
  20. python 证书-在python使用SSL(HTTPS)

热门文章

  1. 计算机动漫设计需要学什么,计算机动画制作专业好学吗?都有哪些课程?
  2. LaTex使用技巧11:解决段落首行不缩进
  3. B端产品设计:价值主张与需求对应的价值
  4. SQL-retrieve data from tables
  5. SAP MM零基础学习-第一篇-模块简介
  6. PPt2007制作三维立体字效果教程
  7. 35美元最小电脑树莓派windows10初体验 raspberry pi 2 win10
  8. java-php-python-汽车销售系统计算机毕业设计
  9. idea中使用git和svn
  10. 【物联网03】 CentOS7编译EMQ源码