Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于FOR-Loop的MATLAB-SVM图像分类_Matlab_Loops_For Loop_Classification_Svm - Fatal编程技术网

基于FOR-Loop的MATLAB-SVM图像分类

基于FOR-Loop的MATLAB-SVM图像分类,matlab,loops,for-loop,classification,svm,Matlab,Loops,For Loop,Classification,Svm,我正在加载数据库的八个图像,并找到每个图像的平均值。在找到平均值之后,我需要从这个数据库中选择一个图像进行测试,并需要对它是否存在于数据库中进行分类。我只得到最后一次迭代的结果。我无法获得其他迭代的结果。谁能帮我得到输出并告诉我哪里错了 代码是: for ix=1:8 V='.jpg'; ie=num2str(ix); Stc=strcat(ie,V); St=imread(Stc); figure(11),subplot(3,3,ix),imshow(

我正在加载数据库的八个图像,并找到每个图像的平均值。在找到平均值之后,我需要从这个数据库中选择一个图像进行测试,并需要对它是否存在于数据库中进行分类。我只得到最后一次迭代的结果。我无法获得其他迭代的结果。谁能帮我得到输出并告诉我哪里错了

代码是:

 for ix=1:8
    V='.jpg';
    ie=num2str(ix);
    Stc=strcat(ie,V);
    St=imread(Stc);
    figure(11),subplot(3,3,ix),imshow(St);
    title('original image');
    Nd(ix)=ndims(St);
    if Nd>2
        II=rgb2gray(St);
    end
    out1(ix)=mean2(St);
    end

I=uigetfile('.jpg');
I=imread(I);

out2=mean2(I);
fea=[out1;out2];
group=[1 2];
svmStruct = svmtrain(fea,group);
sample=fea;
class = svmclassify(svmStruct,sample);

if (class==1)  
    msgbox('Image is in database');
else
    msgbox('Image not in database');
end
我以以下方式运行此代码时出错:

??使用==>vertcat时出错 CAT参数维度不一致。 错误在==>chumm时为20 fea=[out1;out2]


请尽快帮助我。

在循环开始之前,您是否将
out1
定义为行向量?如果是这样,那可能就是问题所在。尝试将其定义为
out1=0(8,1)无论如何。谢谢您的回复。但是,即使像您所说的那样初始化之后,错误仍然存在。循环之后的
size(out1)
是什么?并且在您计算后,还可以立即使用
size(out2)
。它?out1是8x1,out2是1x1。我需要比较out1和out2的值,以及out1中的任何一个值是否与out2的值匹配。然后输出应该是数据库中的图像。如何为此编写代码。