matlab代码报错(Matrix dimensions must agree.),该如何修改呢

% 利用最小距离分类器分类是否佩戴有安全带
% 前30个样本用于生成代表该类的模板,后5个作为独立的测试样本
a=load('zhengchang.mat');%载入正常佩戴安全带的数据集
for i=1:30
name=['food',num2str(i)];
a1=eval(name);
aa(i,:)=a1(:);
end
m1=mean(aa);
m11=reshape(m1,2000,2000);
imtool(uint8(m11));
%第一类前30个样本的平均向量

b=load('wu.mat');%载入未佩戴安全带的数据集
for i=1:30
name=['food',num2str(i)];
b1=eval(name);
bb(i,:)=b1(:);
end
m2=mean(bb);
m22=reshape(m2,2000,2000);
imtool(uint8(m22));
%第二类前30个样本的平均向量

% 测试样本集,分别采用后5个作为测试集
Test=[a.food31;a.food32;a.food33;a.food34;a.food35;b.food31;b.food32;b.food33;b.food34;b.food35];
Test=im2double(Test);
% 测试样本集对应的类别标签
classLabel(1:5)=1;
classLabel(6:10)=2;

% 利用最小距离分类器分类测试样本
class=zeros(1,10);
size(Test,1);
for ii=1:size(Test,1)
    d(1)=norm(Test(ii,:)-m11);%计算与第1类的距离
    d(2)=norm(Test(ii,:)-m22);%计算与第2类的距离
    
    [minVal, class(ii)]=min(d);%计算最小距离并将距离样本最短的类赋给类标签数组 class,min()函数的性质
end

% 测试最小距离分类器的识别率
nErr = sum(class ~= classLabel);
rate = 1 - nErr / length(class);
classLabel;
class;
strOut = ['识别率为', num2str(rate*100), '%'];

你好,我是有问必答小助手。为了技术专家团更好地为您解答问题,烦请您补充下(1)问题背景详情,(2)您想解决的具体问题,(3)问题相关代码图片或者报错信息。便于技术专家团更好地理解问题,并给出解决方案。

您可以点击问题下方的【编辑】,进行补充修改问题。