-
2020-05-12 17:33:41
MATLAB索引超出矩阵维度,求大神指点错误!
MATLAB索引超出矩阵维度,求大神指点错误!
最近在做k均值动态聚类的时候,matlab提示索引超出矩阵维度,不知道问题出在哪了。
代码
N1 = 50;
N2 = N1;
N3=N1; % 设置每类样本个数都为50
N = N1+N2+N3;
d = 2; % 设置为二维样本
X1 = rand(d,N1); % 第1类样本,1个样本占1列
X2 = rand(d,N2)+1;
X3=rand(d,N3)+2; % 第2类样本,1个样本占1列
X = [X1 X2 X3];
%----------------------2、初始化----------------------------------
m1_pre = X(:,1); % 初始化第1类均值,令其= x1
m2_pre = X(:,2);
m3_pre=X(:,3); % 初始化第2类均值,令其= x2
epsilon = 0.001; % 收敛阈值
T_max = 1000; % 最大迭代次数
%----------------------3、迭代----------------------------------
for t = 0:T_max
figure; % 画出样本均值
hold on; plot(m1_pre(1),m1_pre(2),‘gv’,‘markersize’,10,‘MarkerFaceColor’,‘g’);
hold on; plot(m2_pre(1),m2_pre(2),‘kv’,‘markersize’,10,‘MarkerFaceColor’,‘k’);
hold on; plot(m3_pre(1),m3_pre(2),‘rv’,‘markersize’,10,‘MarkerFaceColor’,‘r’);
m1 = 0;
m2 = 0;
m3 = 0;
N1 = 0;
N2 = 0;
N3 = 0;
for i = 1:N
xi=X(:,i);
if norm(xi-m1_pre) < norm(xi-m2_pre) && norm(xi-m1_pre) < norm(xi-m3_pre) % 最小距离判别,norm计算向量的模
m1 = m1+xi;
N1 = N1+1;
hold on; plot(xi(1),xi(2),xi(3),‘go’,‘markersize’,5,‘MarkerFaceColor’,‘g’);
else if norm(xi-m2_pre) < norm(xi-m1_pre) && norm(xi-m2_pre) < norm(xi-m3_pre)
m2 = m2+xi;
N2 = N2+1;
hold on; plot(xi(1),xi(2),xi(3),‘ko’,‘markersize’,5,‘MarkerFaceColor’,‘k’);
else norm(xi-m3_pre) < norm(xi-m1_pre) && norm(xi-m3_pre) < norm(xi-m2_pre)
m3 = m3+xi;
N3 = N3+1;
hold on; plot(xi(1),xi(2),xi(3),‘ro’,‘markersize’,5,‘MarkerFaceColor’,‘r’);
end
end
end
m1 = m1/N1;
m2 = m2/N2;
m3 = m3/N3;
t = t+1; % 迭代次数+1
xlabel(‘x_1’,‘fontsize’,16);
ylabel(‘x_2’,‘fontsize’,16);
title(sprintf(‘t=%d’,t),‘fontsize’,20);
if norm(m1 - m1_pre)<epsilon && norm(m2 - m2_pre)<epsilon && norm(m3-m3_pre)<epsilon % 判断是否停止迭代
break;
end
m1_pre = m1; % 更新均值
m2_pre = m2;
m3_pre = m3;
end
disp(sprintf(‘迭代%d次!’,t)); % 显示迭代次数更多相关内容 -
Matlab索引超出矩阵维度
2021-07-29 20:16:28请问这个怎么解决 -
matlab 索引超出矩阵维度
2020-03-27 19:10:19只要利用 zeros 函数 初始化矩阵的维度即可。 zeros函数——生成零矩阵 ones函数——生成全1阵 例如:B = zeros(m,n):生成m×n全零阵 % 预设内存 RSSIop =zeros(1,n); RSSIpre=zeros(1,n); 警告消失 ...使用matlab发生一个警告
如何预分配内容呢? 只要利用 zeros 函数 初始化矩阵的维度即可。
zeros函数——生成零矩阵
ones函数——生成全1阵
例如:B = zeros(m,n):生成m×n全零阵
% 预设内存 RSSIop =zeros(1,n); RSSIpre=zeros(1,n);
警告消失
https://www.cnblogs.com/haimishasha/p/9959250.html
-
MATLAB索引超出矩阵维度的情况咋办
2021-10-30 20:51:50大佬们,我这是用insar 虚拟机 MATLAB跑图跑到图二第九部时候跑出来的问题,请问该咋整 -
MATLAB索引超出矩阵维度怎么解决
2021-04-19 01:46:25clearclcchang=input('80');kuan=input('40');m=input('70');n11=input('11');n22=input('19');n33=input('20');n44=input('22');n55=input('12');n66=input('10');ticn1=100;n2=n1-(n11-n22)/(n11-n66)*100;...clear
clc
chang=input('80');
kuan=input('40');
m=input('70');
n11=input('11');
n22=input('19');
n33=input('20');
n44=input('22');
n55=input('12');
n66=input('10');
tic
n1=100;
n2=n1-(n11-n22)/(n11-n66)*100;
n3=n2-(n22-n33)/(n11-n66)*100;
n4=n3-(n33-n44)/(n11-n66)*100;
n5=n4-(n44-n55)/(n11-n66)*100;
n6=0;
s1=round(chang*kuan*m(n1-n2)/(100*100*242));
s2=round(chang*kuan*m(n2-n3)/(100*100*169));
s3=round(chang*kuan*m(n3-n4)/(100*100*104));
s4=round(chang*kuan*m(n4-n5)/(100*100*44));
s5=round(chang*kuan*m(n5-n6)/(100*100*11));
for i=1:s1
JZB.n(i,1)=randint(1,1,[6,10]);
JZB.th(i,1)=0;
a=0;
for j=1:JZB.n(i,1)
b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);
JZB.th(i,j+1)=b+a;
a=JZB.th(i,j+1);
JZB.r(i,j)=17.5/2+(2*rand(1)-1)*1.5/2;
end
JZB.th(i,JZB.n(i,1)+1)=2*pi;
JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);
JZB.rmax(i,1)=max(JZB.r(i,:));
end
for i=s1+1:s1+s2
JZB.n(i,1)=randint(1,1,[6,10]);
JZB.th(i,1)=0;
a=0;
for j=1:JZB.n(i,1)
b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);
JZB.th(i,j+1)=b+a;
a=JZB.th(i,j+1);
JZB.r(i,j)=14.6/2+(2*rand(1)-1)*1.4/2;
end
JZB.th(i,JZB.n(i,1)+1)=2*pi;
JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);
JZB.rmax(i,1)=max(JZB.r(i,:));
end
for i=s1+s2+1:s1+s2+s3
JZB.n(i,1)=randint(1,1,[6,10]);
JZB.th(i,1)=0;
a=0;
for j=1:JZB.n(i,1)
b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);
JZB.th(i,j+1)=b+a;
a=JZB.th(i,j+1);
JZB.r(i,j)=11.35/2+(2*rand(1)-1)*1.85/2;
end
JZB.th(i,JZB.n(i,1)+1)=2*pi;
JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);
JZB.rmax(i,1)=max(JZB.r(i,:));
end
for i=s1+s2+s3+1:s1+s2+s3+s4
JZB.n(i,1)=randint(1,1,[6,10]);
JZB.th(i,1)=0;
a=0;
for j=1:JZB.n(i,1)
b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);
JZB.th(i,j+1)=b+a;
a=JZB.th(i,j+1);
JZB.r(i,j)=7.125/2+(2*rand(1)-1)*2.375/2;
end
JZB.th(i,JZB.n(i,1)+1)=2*pi;
JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);
JZB.rmax(i,1)=max(JZB.r(i,:));
end
for i=s1+s2+s3+s4+1:s1+s2+s3+s4+s5
JZB.n(i,1)=randint(1,1,[6,10]);
JZB.th(i,1)=0;
a=0;
for j=1:JZB.n(i,1)
b=2*pi/JZB.n(i,1)+(2*rand(1)-1)*0.05*2*pi/JZB.n(i,1);
JZB.th(i,j+1)=b+a;
a=JZB.th(i,j+1);
JZB.r(i,j)=3.555/2+(2*rand(1)-1)*1.195/2;
end
JZB.th(i,JZB.n(i,1)+1)=2*pi;
JZB.r(i,JZB.n(i,1)+1)=JZB.r(i,1);
JZB.rmax(i,1)=max(JZB.r(i,:));
end
Range=[0 chang;0 kuan];
plot([Range(1,1) Range(1,2) Range(1,1) Range(1,2)],[Range(2,1) Range(2,2) Range(2,1) Range(2,2)]);
hold on;
cum=0;
for i=1:10000000000
if cum==s1+s2+s3+s4+s5
break;
end
SJZB.x(cum+1,1)=rand(1)*(Range(1,2)-Range(1,1))+Range(1,1);
SJZB.y(cum+1,1)=rand(1)*(Range(2,2)-Range(2,1))+Range(2,1);
r=JZB.rmax(cum+1,1);
这个运行时出现如图所示情况,请问怎么解决?
捕获.GIF
(7.48 KB, 下载次数: 0)
2017-9-6 10:56 上传
-
MATLAB 索引超出矩阵维度【求助】
2021-11-24 18:51:15在科研过程中遇到的问题: 新手小白实在是没有思路,能尝试的办法都试过了呜呜呜呜~恳请各路大神伸出援手,小子不胜感激。 相关代码如下图: 完整代码地址:...在科研过程中遇到的问题:
新手小白实在是没有思路,能尝试的办法都试过了呜呜呜呜~恳请各路大神伸出援手,小子不胜感激。
相关代码如下图:
-
Matlab索引超出矩阵维度是什么意思
2021-11-26 12:03:49 -
matlab中索引超出矩阵维度
2021-04-20 04:06:11% beta 是一个常量 beta(alpha,beta) % beta 不是二维数据,所以索引超出话题:matlab索引超出矩阵维度回答:很明显是你的data_test包含的数字超出了label的个数,:你的data_test含有524这个数,但是这种情况下... -
程序用matlab运行显示索引超出矩阵维度,请问怎么
2021-04-20 01:12:20话题:程序用matlab运行显示索引超出矩阵维度,请问怎么改?回答:用size函数可以求矩阵维数,用reshape可以改变数据维数。 如: a=[1 2 3;4 5 6;7 8 9]; size(a) ans = 3 3 说明矩阵a是3行3列的。 reshape(a,1,9) ... -
MATLAB 索引超出矩阵维度。
2019-01-05 18:39:29开始运行程序没问题,后面在今天用的时候突然提示“索引超出矩阵维度。”我代码和数据集都没换过。。。不知道原因,求大神解一下 ``` function [acc,G,Cls] = GFK(X_src,Y_src,X_tar,Y_tar,dim) Ps = pca(X_src)... -
MATLAB 运行时候总显示索引超出矩阵维度,这怎么解决呀?
2022-04-29 15:54:37用MATLAB运行分层贝叶斯,数据导入后,再改5到8行,可是再运行时候下面就提醒 索引超出矩阵维度。这是什么原因?有人知道吗? -
关于用matlab车牌识别,识别字符时出现索引超出矩阵维度怎么办?求解
2021-09-29 20:24:08%Y方向车牌区域确定 %temp为向量white_y的元素中的最大值,MaxY为该值的索引 PY1=MaxY; while((Blue_y(PY1,1)>=5)&&(PY1>1)) PY1=PY1-1; end PY2=MaxY; while((Blue_y(PY2,1)>=5)&&(PY2PY2=PY2+1; end IY=I(PY1:PY2,... -
索引超出矩阵维度怎么解决?
2021-04-21 06:58:34索引超出矩阵维度。出错 reduceEI (line 3)if any(M(1,:))出错 EIsum (line 4)f=reduceEI([[zeros(max(Msize(1),Nsize(1))-Msize(1),Msize(2));M],[zeros(max(Msize(1),Nsize(1))-Nsize(1),Nsize(2));N]]);出错 ... -
老是提示索引超出矩阵维度,求大神指导
2021-04-20 01:11:28function mainclearL=32;%基底尺寸的设定;step1=500;%生长层数的设定,niu=1;deltt=0.05;deltx=1;dd=16;aa=(2*dd/deltx)^(1/2);%基本参数的设定;cs=100; %重复计算次数h=zeros(L+2,step1);%基底高度的初值;... -
索引超出矩阵维度(《无人驾驶车辆模型预测控制》第一版)
2021-12-28 16:19:41索引超出矩阵维度 -
Matlab中将矩阵写入txt文件_索引超出矩阵维度
2020-12-16 11:20:11通用的把矩阵写入txt文件的 > X=rand(8,6) X = 0.3816 0.7547 0.3404 0.9593 0.2435 0.8308 0.7655 0.2760 0.5853 0.5472 0.9293 0.5853 0.7952 0.6797 0.2238 0.1386 0.3500 0.5497 0.1869 0.6551 0.7513 0.1493 0.... -
索引超出矩阵维度
2020-06-04 18:31:19关于使用Matlab中max或min时出现报错:索引超出矩阵维度的情况: 可能是之前在代码中重新设定了max或min的变量名字, 由于matlab寻找变量名或函数名是先从当前工作空间和当前文件夹搜索的,导致程序运行时系统找错。... -
索引超出维度,怎么处理
2021-04-21 06:58:36clc; close all; clear all; run Set_II; % 参数设置 run Part_II;... 显示结果为 索引超出矩阵维度。 出错 xianxingjiance (line 19) [R(k),Lc(k)]=max(b(lmin:lmax)); % 在Pmin~Pmax区间寻找最大值 求帮忙,谢谢 -
Matlab报错“索引超出矩阵维度
2021-11-13 21:56:10EEG = pop_loadset('filename','s2.set','filepath','G:\mrERP\Exp\TJ\H_remove'); for i=1:size(EEG.event,2) if strcmp(EEG.event(i).type,'... end end 为什么size是376 i 要跑到377去,最后导致索引超过矩阵维度 -
dpabi预处理报错——索引超出矩阵维度
2022-07-24 21:01:20另外,一定要多看看官网,如果预处理一直报错,建议先用官网的demo data演示一下,如果没问题,就说明系统跟软件(spm matlab dpabi)安装没有出错,那么就是数据准备这一块出了错,还需要自己多排查。 更多报错... -
关于matlab车牌识别,识别字符出现索引超出矩阵维度怎么办?求解
2022-06-11 23:54:01%Y方向车牌区域确定 %temp为向量white_y的元素中的最大值,MaxY为该值的索引 PY1=MaxY; while ((Blue_y(PY1,1)>=5)&&(PY1>1)) PY1=PY1-1; end PY2=MaxY; while ((Blue_y(PY2,1)>=5)&&(PY2PY2=PY2+1; end IY=I(PY1:PY... -
关于tracker_benchmark_v1.0中出现的索引超出矩阵维度的问题
2019-09-06 16:09:21如何解决矩阵搜索超出维度 改变tracker的数量,数据集也不能太少。 -
matlab中报错,索引超出矩阵维度该如何改?
2019-04-20 17:09:09!... 尝试用程序把Inimg和Staimg图像都改成512*512的,和把两个图像像素改成一样大小,但是还是超出维度,怎么办? -
如何解决索引超过矩阵维度 - MATLAB
2021-04-18 03:32:17该系统使用两个坐标点... “指数超过矩阵尺寸。”我怎么解决这个问题。以下是我的编码和存储在Excel中的数据。编码M = xlsread('Region11.xlsx',1);N = xlsread('Region11.xlsx',2);Start = N(:,1);End = N(:,2);d... -
matlab中变量问题——readonly 索引超出矩阵维度 workspacefunc 215
2021-04-19 01:46:26matlab程序运行过程中会出现如上提示,在网上...应该返回索引,结果返回结果全部为零,猜想是不是exist这个变量的问题,故将其改名为exist_1,结果程序正常执行,搜索发现,原来是exist为matlab中一个函数,这里相当... -
Simulink 仿真运行文件索引超出矩阵维度
2022-04-12 16:41:51Simulink运行显示索引超出矩阵维度,关于Carsim与simulink 仿真,做的是无人驾驶轨迹跟踪控制 -
如何解决索引超出矩阵维度
2021-11-12 19:59:43%Y方向车牌区域确定 %temp为向量white_y的元素中的最大值,MaxY为该值的索引 PY1=MaxY; while ((Blue_y(PY1,1)>=5)&&(PY1>1)) PY1=PY1-1; end PY2=MaxY; while ((Blue_y(PY2,1)>=5)&&(PY2 PY2=PY2+1; end IY=I(PY1:... -
MATLAB小白一个,毕设做一个基于MATLAB的车牌识别系统,出现索引超出矩阵维度的错误。主函数和自定义函数都...
2021-04-26 14:53:41索引超出矩阵维度。 出错 main (line 152) while sum(d(:,wide+1))~=0 DZ.jpg (188.91 KB, 下载次数: 0) 2020-5-11 15:42 上传 2020-5-11 15:41 上传 点击文件名下载附件 571 Bytes, 下载次数: 6 自定义函数 2020-5... -
索引超出矩阵维度但是改不来
2019-05-27 23:40:16MATLAB的复化柯特斯公式,提示我索引超出矩阵维度,但是我改不来 function cotes(a,b) n=4; for i=1:5 x=a:(b-a)/4*n:b; m=4*n+1; h=(b-a)/n; s=(h/90)*(7*f1(a)+32*sum(f1(x(1:4:m-4)))+12*sum(f1(x(0:4... -
MATLAB出现索引超过矩阵维度
2021-10-23 14:09:16各位大神们,这个范围该取多少,取一帧320样点的语音信号,分析十二阶的线性预测系数,后面的参数有没有问题。