如果第1-4列中没有数据,请在读取的数据中删除整行(不在数据文件中),但在将数据分配给的变量中删除。 我正在研究我的论文,由于我无法信任这些文件中的数据,因此我需要解决此问题。
我已经尝试了多种方法来纠正此问题。我检查了数据文件,看其中是否有一些奇怪的字符。我还在textscan调用语句中交替使用了不同的命令,但是我将绕圈而行。这可能很简单,而我却忽略了一些显而易见的事情。我将粘贴已运行的例程,但由于未知原因它仍会跳过数字。我将包含一个包含10行的数据文件(1条评论+9条数据)。 我正在使用大多数工具箱运行Windows版本10,MATLAB R2017b学生版。
这是代码: 读取点文件的%dotsread.m文件 filename ='dots0102.txt';%data文件
FileID = fopen(filename, 'r');%open file
%
formatSpec = '%f%f%f%f%f%f';%data format
Avec = textscan(FileID, formatSpec,...
'Delimiter', ',','HeaderLines',1,'EmptyValue',...
NaN,'CommentStyle',{'-'} ); %assign data to Avec
fclose(FileID); %close file
%Assign data to variables
starpx = Avec{1};
starpy = Avec{2};
stoppx = Avec{3};
stoppy = Avec{4};
rho = Avec{5};
theta = Avec{6};
如果数据文件中的所有列均已填写并且有N行,那么我希望每个分配的变量都具有N行。
starpx = Avec {1};%Nx1,两倍 starpy = Avec {2};%Nx1,加倍 stoppx = Avec {3};%Nx1,加倍 stoppy = Avec {4};%Nx1,加倍 rho = Avec {5};%Nx1,加倍 theta = Avec {6};%Nx1,两倍
实际结果
starpx = Avec {1};%Nx1,两倍 starpy = Avec {2};%Nx1,加倍 stoppx = Avec {3};%Nx1,加倍 stoppy = Avec {4};%Nx1,加倍 rho = Avec {5};%(N-1)x1,两倍 theta = Avec {6};%(N-1)x1,两倍
数据已移动但出乎意料。 如果代码有任何公然错误,请通知我。我可以向您发送10行数据文件,以便您了解发生了什么。 谢谢