本帖最后由 DDG055 于 2022-5-12 11:51 编辑 有一个m*8矩阵,截取其中一部分数据如下: ![]() 现在要剔除矩阵中不完整的行或者有问题的行。有问题的行的特征: 1. 行元素个数少于8个; 2. 第2列元素,第 i 行比第 i-1行数值小,则删除第 i 行; 如果行最后不以逗号结尾(也是写入数据不完整),但元素个数等于8个,则该行数据有效,保留; 编写的程序如下: clc;close all;clear all; filepath='.\'; Data=importdata('DT-1.txt'); [m,n]=size(Data); % n=8 data1=Data(2:end-1,2:n); [m1,n1]=size(data1); % n1=7 data_new=ones(m1,n1); % m1*n1全1阵 new_count=1; for i=1:m1 x=length(data1(i,:)); if x==7 data_new(new_count,:)=data1(i,:); new_count=new_count+1; if new_count>m1 new_count=m1 end i=i+1; end end data=data_new(1:new_count,1:n1); t=data(:,1);X=data(:,2);Y=data(:,3);Z=data(:,4);a=data(:,5);b=data(:,6);c=data(:,7); figure(1); plot(t,X,'m',t,Y,'b',t,Z,'g'); grid on; figure(2); plot1=plot(t,a,'m'); plot1.Color(4)=0.3; hold on; plot1=plot(t,b,'b'); plot1.Color(4)=0.3; hold on; plot1=plot(t,c,'g'); plot1.Color(4)=0.3; grid on; 这个程序存在的问题就是只能绘制一部分数据图,并不能绘制全部数据,请大神帮忙看一下问题出在哪里? 另外一种去掉有问题的行的思路: data(i,:)=[]; 这种会不会导致原始数据第二列顺序混乱? 附件:m文档 & 原始数据截取DT-1.zip ![]() |
最佳答案
3 条回复