Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2015-03-07, 23:38   #1
nano_zombie
初级会员
 
注册日期: 2015-03-07
年龄: 30
帖子: 3
声望力: 0
nano_zombie 正向着好的方向发展
默认 关于MATLAB中svmtrain使用方法

最近用svm做分类,一直不知道下面的程序错在哪里,还望指教
代码:
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;
报错信息是:
Error using svmtrain (line 253)
Y and TRAINING must have the same number of rows.
其中datatest,dataread是原胞数组,第二列存的的都类型信息;
nano_zombie 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 06:01


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.