MATLAB load不能读取TXT数据问题

程序如下:load ✀F:尀matlab尀work尀nihedian.txt✀nihe=nihedian;[tl,t2]=size(nihe);for i=l:tlshujuO(i,1)=nihe(i,2)-27;shujuO(i,2)=nihe(i,3)-115;shujul(i,1)=shuju0(i,1)*shuju0(i,2);shujul(i,2)=shuju0(i,1)^2;shujul(i,3)=shuju0(i,2)^2;endL(:,1)=nihe(:,4);%取高程异常for i=l:tlcc(i,1)=1;endA=[cc shuju0 shujul];%设计数据矩阵P=eye(t1);X=inv(A✀*P*A)*A✀*P*L;V=A*X-L; D=nihe(:,1);%取点号zhongwuch=sqrt(V✀*P*V/(t1-1))%计算外符合精度%v=[D V];%加上点号load jianhedian.txt%检核计算jianhe=jianhedian;[t3,t4]=size(jianhe);for i=l:t3jianhe0(i,l)=ianhe(i,2)-27;jianheO(i,2)=jianhe(i,3)-115;jianhel(i,1)=jianhe0(i,1)*jianheO(i,2);jianhel(i,2)=jianhe0(i,1)^2;jianhel(i,3)=jianhe0(i,2)^2;endLj(:,1)=jianhe(:,4);for i=l:t3 cj(i,1)=l;endAj=[cj jianheo jianhel];vj=Aj*X-Lj;Vjp=mean(Vj)Dj=jianhe(:,1);jianhejingdu=sqrt(Vj✀*vj/(t3-1))%Vj=[Dj Vj];%加点号t=l:t1;tO=l:t3;subplot(2,l,1)plot(tO,vj,✀-.r*✀)xlabel(✀点号✀)ylabel(✀残差✀)title(✀二次多项式检核残差图✀)legend(✀残差超过O.03m点1个✀)count=O;for i=l:t3 if abs(Vj(i,1))>O.1 count=count+1; text(i,Vj(i,1),✀!✀) endendcountsubplot(2,1,2)plot(t,V,✀-.r*✀)xlabel(✀点号✀)ylabel(✀残差✀)title(✀二次多项式拟合残差图✀)legend(✀残差超过O.03m点5个✀)countl=O;for i=l:tl if abs(V(i,1))>O.1 countl=count1+1; text(i,V(i,1),✀!✀) endendeountl数据如下:点号 X坐标(m) Y坐标(m) 水准高(m) 大地高(m) 高程异常(m) 1 5943.180 13109.779 3.860 5.154 1.294 2 14290.852 l5236.529 9.882 11.183 1.30l 3 14314.333 17453.366 8.381 9.725 1.344 4 10657.400 18587.869 5.707 7.176 1.469 5 l5614.044 19019.107 9.28l 10.653 1.372 6 44012.992 1943.363 8.799 9.619 0.820 7 47265.077 2624.472 5.993 6.826 0.833 8 49705.797 901.519 4.369 5.153 0.784 9 45813.035 5265.560 8.686 9.620 0.934 21 45556.460 3662.745 5.970 6.860 0.890 22 45335.396 3132.792 5.365 6.235 0.870 23 45928.940 3273.456 4.225 5.091 0.866 24 45661.479 2929.400 4.479 5.321 0.842 25 19088.756 17018.165 8.098 9.400 1.302 26 20819.056 16778.176 7.926 9.237 1.31l 27 22105.089 6669.330 8.142 9.504 1.362 28 23547.437 16540.516 7.997 9.315 I.318
2026年09月24日 15:32
有2个网友回答
网友(1):

你使用importdata()函数读取,读取后会自动将表头和数据分开存储,你取到数据就可以了。
将前两句改为:
nihedian=importdata( 'F:\matlab\work\nihedian.txt');
nihe=nihedian.data;
但你需要将你的文本数据重新用Excel整理导出下,中间分隔符好像都不太一样

网友(2):

数据里的第一行要去掉,就是中文的标签。