该部分内容主要记录一下自己在日常生活中的遇到的一些小问题,可能这些问题非常简单,但是由于不够熟练,往往还要费一些时间去百度,这样子并不是一个好的方法,因此在这里单独拿出来记录,方便回看。
一、仿真过程遇到影响效率的小问题
近期,在处理大量的仿真图片和数据,在这个过程中,自己有一些体会,记录一下,方便以后使用,该部分主要是个人在学习过程中的一些新的体会,会不断丰富。
1、关于同时建立多个文件夹的需求
当我们希望采用相同类型的数据,建立多个文件夹时,比如我们想建立不同频率的文件夹,那是不是右键一个一个建比较好呢?那还是比较浪费时间的,网上简单搜索一下,发现采用批处理技术比较靠谱。
首先,新建一个txt的文档,里面写上如下所示:
md 5mmFigure 10mmFigure 15mmFigure 20mmFigure
将该文件转换成.bat即批处理格式即可快速批量新建文件夹,对于想一下建立多个文件夹的需求的用户还是不错的选择的。
最后点击运行,显示结果如下图所示。
2、当我们用matlab批量加载txt文件,并绘制图像时候,我希望一下子把某个文件夹里的几百个文件按顺序读取并显示图像,最后存储在一个文件夹里面,方便查看。
首先,用matlab的dir函数,该函数可以直接返回文件夹中txt文件的数量,此外,还可以直接获取每一txtx文件的名称,方便后续根据这个名字导入数据
如
%首先获取该文件夹下的文件列表
TxtNameList=dir("C:\数据\*.txt")
%采用length函数可以返回TxtNameList里面的txt的数量
len = length(TxtNameList);
%此外,还可以直接从TxtNameList 里面直接获取文件的名
%如
TxtName=TxtNamelist(1).name;
这样子就很简单了,比如我想一下读取某一个文件夹下的所有文件,并将这个文件里面的数据成图绘制出来,那么我可以下如下循环:
%首先获取该文件夹下的文件列表
TxtNameList=dir('C:\\数据\\*.txt')
%采用length函数可以返回TxtNameList里面的txt的数量
len = length(TxtNameList);
txtPath='C:\\数据\\';
for i = 1:len
%合并整个文件路径
namefull= fullfile(txtpath,txtNamelist(i).name);
figdata = importdata(namefull);
%成像
figure
%成图
imagesc(figdata);
%保存文件到制定文件夹,其中,num2str(i),表示将i直接转换为字符串和后边的.jpeg连接成一个文件名称
%gcf表示当前被保存图片的句柄,一般写默认这个就可以。
print(gcf,'-djpeg',['C:\\数据\\Figure\',num2str(i),'.jpeg']);
colormap('jet');
end
二、生活中遇到的小问题
今天,有个人让我帮忙计算一下几个数据的求和,我首先想到的是采用电脑上的计算器,然后就是excel,最后是matlab,但是我仔细一下,这几个工具我都会,但是可能都不是信手拈来,不够自信的说用过很多次,为此,事后,我自己稍微总结了一下,三种计算方法, 相信以后在遇到类似的问题就迷之自信了。
当采用电脑遇到数据运算时,可以选择如下方法进行求和:
(1)当然最简单最直接的方法是采用计算器,直接打开计算器选择科学计算器即可,输入要计算的数据,也会显示计算的过程,非常自然。
(2)可以选择用Excel来做,比如有多个数据求和,那么首先将这些数据填入到excel列表中,然后点击将要显示结果的单元格,此时,按住"alt"+"="键即可将该列或该行的数据进行求和。或者选中该行需要求和的几行或者几列也是按住上述快捷键也是可以很方便的求和的。
(2)可以选择用Matlab进行求和运算,在matlab中直接输入相应的数字求解即可,但一般来说计算完成之后往往会出现如图所示的科学计数法的显示方式:
这个时候可以输入 format long g 方式更改成非科学计数法的形式,
这种方式就是仅仅限于本次打开matlab中的运算,但是下次再打开matlab的话可能还是要这么输入一次才能变为非科技术法的计算方式。
因此,我最推荐的方式是可以直接采用sprintf()函数,该函数和c++中的printf函数类似,直接对显示的结果进行格式化输出即可。