永发信息网

求MATLAB大神帮我看看这段代码哪里错了 索引超出矩阵维度

答案:2  悬赏:30  手机版
解决时间 2021-02-21 18:52
  • 提问者网友:火车头
  • 2021-02-21 13:45
Y=dlmread('Yale_32x32\StTestFile1.txt');
size(Y)
a=Y(12,1:end-1);
Y=reshape(a,32,32);
A=dlmread('Yale_32x32\StTrainFile1.txt');
size(A)
b=A(12,1:end-1);
A=reshape(b,32,32);
c=0;
for i=1:30
Yi=Y(i,1:4096);
D=1000000000;
t=0;
for j=1:135
Zj=A(j,1:4096);
yj=Zj'/(Zj*Zj')*Zj*Yi';
dj=norm(yj-Yi');
if djD=dj;
t=j;
end
end
if A(t,4097)-Y(i,4097)==0
c=c+1
zq=i
end
end

索引超出矩阵维度。

急求!!!!!!!!!!
最佳答案
  • 五星知识达人网友:一秋
  • 2021-02-21 14:38
matlab最大的好处就是不用事先定义变量看你的意思是要按列存储数据,只要每一列的数据个数是不变的,就可以直接使用,直接使用的变量默认为矩阵,只要你存储了第一列数据,其行数就确定了,但列数是可变的,不会报错,放心使用,但前提是你的行数一旦确定就不能超过第一次使用的行数,否则会报错,需要另行编制程序
全部回答
  • 1楼网友:上分大魔王
  • 2021-02-21 15:28
很明显是你的data_test包含的数字超出了label的个数,比如: 你的data_test含有5249这个数,但是这种情况下如果你的label没有5249个数,自然超出了索引。label(x)表示取第x个数
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯