资讯详情

传感器类数据整理-matlab-0504-Victor

在利用matlab在整理数据的过程中,我发现了一些容易出错的问题,以及在与马师兄沟通后获得的一些经验和指导,以及如何更有效地完成这些工作,所以我记录在这里提醒和分享。P.S 补充0504给敏杰师弟写的代码总结(搞笑)。

1、命名规则

尽量不要在文件名和代码名中使用-中横线,下划线可用作文件名标志。-通常用作代码等程序语言中的操作符号或其他功能符号,如-acsii,标识转化为acsii存储代码形式。

2、集合操作

避免重复操作错误,提取文件名后统一操作,命令:dir 搜索目录下的文件名。操作多个文件时,应注意使用循环来简化句子(for while所有句子都适合),否则在重复操作中容易出错。

3.搜索代码故障位置

写一个额外的基本点来提醒自己,a(:,4),表示第四列取整,a(1:3,4),表示取第四列1至3行,a([1 三、四),表示取第四列1、3行。

对于代码的故障位置(通常是多行或多列),一般的方法是遍历有序行列,提取故障点的特征进行区分。例如,如果时间缺失一段时间,可以采用下位减去上位,观察时差变化,设置阈值找出故障点。

4.搜索特定的行列位置

有时候,我们只需要数据文件中某些特定位置的数据,所以我们需要知道特定位置的特征。一般来说,我们可以通过阅读数据文件的形式获得特定的行列数。此时,我们可以通过阅读行语句来遍历所需的行列。

例子:

clc;clear all;

filename=dir(‘*.txt’); 提取文件名的%%

k=length(filename); 获得文件数量的%%

line=11; %目标行数

for i=1:k;

fidin=fopen(filename(i).name,’r’);

fidout=fopen(‘fout.txt’,’at ’);

nline=0;

while(nline~=line);

tline=fgetl(fidin); % 从文件读行

nline=nline 1;

end

fprintf(fidout,’%s\n’,tline);

i=i 1;

fclose(fidin);

fclose(fidout);

end

如果需要多行,可以while修改条件语句或嵌套一个for语句在外面,此时需要判断每一个需要通历line。如果只是不需要前面的注释,可以直接使用textread语句,用head跳过前几行。

这里还需要注意的一个问题是,问题是,当我们再次写入文件时,循环后面覆盖了以前的问题。我们在网上尝试了很多方法,但没有很好地解决它们。最后,我们找到了它们fopen在句子中加入at 以后可以写入文件续写。

5、统一修改txt文件的语句

若需修改txt可以使用文件中的数据,如数字部分的要求textread命令筛选。

[num]=textread(‘fout.txt’,’%*s %*s %*s %f’,k);

textread命令的一般格式是,textread(filename,format,number),这样可以把txt文件中前三个字符串略去,只保留最终浮点数据。textread命令还可以在后面加上筛选语句’delimiter略去分隔符等。

解释一下这里s是string字符串的意思,%f是浮点数,包括%d是双精度等。如有必要,救世%s,如果不需要,增加%*s,不要说这个数据。textread还有很多功能,需要进一步学习,这里推荐一个txt数据处理总结:www.ilovematlab.cn/thread-872-1-1.html,这里可以看到相关知识。

我很早就写了一部分。不幸的是,原来的电脑显示器坏了,打不开。我只放了最近的代码。如果我有时间,我会弥补它。我有错误和遗漏。我希望我能给你一些建议!

标签: 传感器传给matlab

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台