![]() |
关于MATLAB中svmtrain使用方法
最近用svm做分类,一直不知道下面的程序错在哪里,还望指教
[CODE]function p=dividetest(datatrain,datatest,order) %本函数用来对MASTAR里的SAR图像进行分类 %p=dividetest(datatrain,datadivide) %输入:datatrain 训练样本数据 由dataread读取 % :datadivide 测试样本数据 由datadivide读取 % :order 进行分数阶变换的阶数 %输出:p 分类成功率 %计算训练样本的分数阶傅里叶变换,并计算Hu矩 n=size(datatrain,1); hudatatt=zeros(n,7); %hu of datatrain's transform for i=1:n hudatatt(i,:)=Hu(DTFrFT2(abs(datatrain{i,1}),order)); end %训练svm svmStruct=svmtrain(hudatatt,datatrain{:,2}); %计算测试样本的分数阶傅里叶变换,并计算Hu矩 m=size(datatest,1); hudatadt=zeros(m,7); %hu of datadivide's transform for i=1:m hudatadt(i,:)=Hu(DTFrFT2(abs(datatest{i,1}),order)); end C=svmclassify(svmStruct,hudatadt); p=1-sum(datatest~=C)/m;[/CODE] 报错信息是: Error using svmtrain (line 253) Y and TRAINING must have the same number of rows. 其中datatest,dataread是原胞数组,第二列存的的都类型信息; |
所有时间均为北京时间。现在的时间是 04:55。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.