matlab表格数据处理

问题遇到的现象和发生背景

使用的是百分数位法处理数据,但是处理出来的表格只有同一行数据

问题相关代码,请勿粘贴截图

a=rawDataNum(:,1:3);
k=1;
while(k<=length(a(: , 3)))
a(k,3)=abs(a(k,3)) ;
if a(k,3)<=2||a(k,3)>=200
a(k,:)=[];
end
k=k+1;
end
i=1;v=[];
while(i<=length(a(:,1)))
if a(i,3)<58.8
v=[v;a(1,:),1];
i=i+1;
elseif a(i,3)<78.64
v=[v;a(1,:),2];
i=i+1;
elseif a(i,3)<98.67
v=[v;a(i,:),3];
i=i+1;
elseif a(1,3)<120.485
v=[v; a(1,:),4];
i=i+1;
else
v=[v; a(i,:),5];
end
end

运行结果及报错内容

如图所示,会将表格处理成4列的表格,但是每一个数据都是相同的一行

img

我的解答思路和尝试过的方法
我想要达到的结果

v=[v;a(1,:),1];中 你把 i写成 1了

问题
好几处代码i1 写错了
如:第13行、16行、22行

解决办法
修改代码如下:

a=rawDataNum(:,1:3);
k=1;
while(k<=length(a(: , 3)))
a(k,3)=abs(a(k,3)) ;
if a(k,3)<=2||a(k,3)>=200
a(k,:)=[];
end
k=k+1;
end
i=1;v=[];
while(i<=length(a(:,1)))
if a(i,3)<58.8
v=[v;a(i,:),1];
i=i+1;
elseif a(i,3)<78.64
v=[v;a(i,:),2];
i=i+1;
elseif a(i,3)<98.67
v=[v;a(i,:),3];
i=i+1;
elseif a(i,3)<120.485
v=[v; a(i,:),4];
i=i+1;
else
v=[v; a(i,:),5];
end
end