为什么回归不起作用? (MATLAB)

时间:2017-11-15 16:46:43

标签: matlab regression

我有一个加速度计信号如下: enter image description here

我有一个步行信号如下:

enter image description here

我尝试使用回归来回归这两个信号。这是代码:

regMat=zeros(size(walkVec,1),size(walkVec,2));
for i=1:size(data,1)
   b=regress(walkAcc', walkVec(i,:)');
    regMat(i,:)=walkVec(i,:)-repmat(b,1,length(walkAcc));
    regData(i,:)=[data(i,1:(ipt(1)-1)),regMat(i,:), data(i, 
     (ipt(2)+1):size(data,2) ) ];
 end

 figure(1),hold on, plot(data(1,:),'r'), plot(regData(1,:)), title 
('regressed (b) and raw(r) ')
legend('raw','regressed')
 xlabel('samples')
ylabel('Intensity')

以下是reslts: enter image description here

你可以看到回归并没有真正起作用。你知道我为什么以及如何解决它?

非常感谢和亲切的问候

2 个答案:

答案 0 :(得分:1)

检查regData是否在第一列中有任何数据。如果一个数据高或低几个数量,也会发生这种情况。它在同一图表中可以忽略不计。我用虚拟数据尝试了你的代码并且它可以工作。

答案 1 :(得分:1)

如果您要查找的内容只是回归的直观表示,并且您不需要存储/处理数据,我建议您使用函数plotregressionhttps://it.mathworks.com/help/nnet/ref/plotregression.html