Matlab中出现“位置1处的索引超出数组边界(不能超过1)”
我是一个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)”相关推荐
- 位置2处的索引超过边界总数matlab,位置 2 处的索引超出数组边界(不能超出 2)。...
想使用fmincon函数优化求微分方程的参数,写完程序之后提示这个错误,大佬们能不能帮我看看哪里错了? 也帮忙看一下我写的程序对不对,有没有有需要改正的地方. k0=[0.023 0.000613 0 ...
- matlab处理数据,提示“提示位置1处的索引超出数组边界。不能超出1”,这该怎么处理呢
- 求助: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]';%期望角速度%- ...
- matlab报错:位置 2 处的索引超出数组边界(不能超出 3)。
原因: for i=1:1:a jieguo_data(i,1)=xingzuo_data(i,1); jieguo_data(i,2)=xingzuo_data(i,2); ...
- 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 ...
- php 数组大于1,位置 1 的索引超出数组范围(不能超过 1)。
%清空运行环境 clc clear %速度更新参数 c1 = 1.49445; c2 = 1.49445; maxgen = 300; %最大迭代次数 sizepop = 20; %种群规模数 %个体 ...
- 位置2的索引超出数组范围不能超过10_golang学习笔记--切片slice 与数组 arr
因为我是写php的,刚开始写go的时候老是被数组坑.因为在go中的数组是固定长度,所以会存在越界的时候.而在go中也很少直接使用数组.更多的时候会使用slice(切片). 数组 数组是一个由固定长度的 ...
- c/c++中索引超出数组边界问题
C/C++没有数组 在其它高级语言里,不管是定义(声明)还是引用, a[i] 或 a[3] 都是一个整体.在 C/C++ 里,却是一个表达式: a[i] 是运算符 [] 连接两个实体 a 和 i . ...
- matlab中的元包素组索引
matlab中的元包素组索引 简介 单元索引 内容索引 复杂一点的情况 简介 matlab中的元胞数组是一种数据类型,该类型的元素本质上是索引,因此元胞数组能够容纳任何一种数据类型,可自包含.元胞数组 ...
最新文章
- xib文件的加载方法
- ❤️ 爆肝一个月!JAVA零基础入门总结(上)❤️
- Linux | 编译原理、gcc的命令参数、自动化构建工具 make/Makefile
- 求你了,别再说Java对象都是在堆内存上分配空间的了!
- 【C语言】创建一个函数,利用该函数将两个字符串连接起来
- docker cp :用于容器与主机之间的数据拷贝
- 【Elasticsearch】es Elasticsearch HQ 介绍
- bzoj 1010: [HNOI2008]玩具装箱toy
- CTF_BUGKU_WEB_game1
- Pandas 安装到Pycharm
- 最后两星期,怎么过6级?(最快攻略)
- (Scrapy框架)爬虫获取新冠疫情数据升级版 | 爬虫案例
- Linux基础知识篇二
- android 手机 投影,100吋1080p 看Android双核手机连投影
- 打开GitHub官网缓慢
- WECHAT 微信扫码关注公众号方法无法获取头像和昵称了
- (附源码)计算机毕业设计SSM绩效考核管理系统
- Scalar数据类型
- Linux 内核源码中likely()和unlikely()
- python 证书-在python使用SSL(HTTPS)