matlab如何保留最新的十五个数据

matlab如何保留最新的十五个数据,第1张

在利用MATLAB进行数据处理和科研学习的时候经常需要将数据保存下来,软件本身有几种保存方式。由于经常忘记,所以这里总结和整理下来,一是提醒自己,二是若能对他人有一丁点帮助,那也是极好的。

1主要的几种保存数据的方式

11 CTR+S

这个保存方式在word等软件中经常使用,在MATLAB中也不例外。该方式也是一种快捷键组合,其作用和通过菜单栏的保存选项一致。这种保存方式我在两个场景中会用到。

111 保存代码

当我们正在写代码时,鼠标光标位于编辑区(就是写代码的窗口),按下CTR+S则会保存代码。这是在写代码是最常用的 *** 作,一定要保存好代码。

112 保存工作区数据

当我们运行完数据,如果我们把光标放到“当前路径”、“命令窗口”、“工作空间”这三个地方时,如果我们按下CTR+S,MATLAB则会保存我们刚刚经过运行产生的在“工作空间”的所有数据,保存后会生成一个“mat”文件,其中包括在“工作空间”出现的所有数据。

此外,当我们进行图像化显示,产生一个figure窗口的时候,将光标放在figure窗口,按下CTR+S,则会触发保存该figure窗口的指令。

12 save 和save as

121 save

save命令应该是保存数据比较常用的一种方式。其语法在MATLAB帮助文档中有这样一些描述:

save(filename)

save(filename,variables)

save(filename,variables,fmt)

save(filename,variables,version)

save(filename,variables,version,‘-nocompression’)

save(filename,variables,‘-append’)

save(filename,variables,‘-append’,‘-nocompression’)

save filename

注:

save(filename):这种方式和上述提到的在“当前路径”、“命令窗口”、“工作空间”这三个地方按CTR+S产生的效果一致,均是保存在工作空间的所有数据变量。

save(filename,variables):这种方式相对于前一个语句的保存针对性更强一些,可以将variables所代表的数据(不论什么格式)保存成“mat”的格式。

其中save(filename,variables,fmt)这种格式是我最常用的一种方式,这种方式可以将我们经过运行产生在“工作空间”中某个变量的数据保存成我们想要的格式。

122 saveas 和 savefig

save as语句主要用于对产生的figure图窗进行保存。

saveas(fig,filename)

saveas(fig,filename,formattype)

举一个MATLAB帮助文档的例子:

x = [2 4 7 2 4 5 2 5 1 4];

bar(x);

saveas(gcf,‘Barchartpng’)

提到saveas,还要提到一个语句就是savefig。它有这样一些语法:

savefig(filename)

savefig(H,filename)

savefig(H,filename,‘compact’)

这个语句也是针对图窗的保存,可以将多个图窗保存在一个文件里面,例如帮助文档里面的示例:

h(1) = figure;

z = peaks;

surf(z)

h(2) = figure;

plot(z)

savefig(h,‘TwoFiguresFilefig’)

close(h)

如果要打开保存的两个图窗,则需要利用openfig的 *** 作。

figs = openfig(‘TwoFiguresFilefig’);

这个功能和在fig图像的菜单栏点击文件(File)->保存(save)或者保存为(save as)的功能是一致的。我一般会选择在图窗点击保存。

13 imwrite写数据

做图像处理经常会用到这个保存的 *** 作,imwrite的功能就是将指定的图像数据写入到指定的文件,它的语法有这样几种形式:

imwrite(A,filename)

imwrite(A,map,filename)

imwrite(,fmt)

imwrite(,Name,Value)

这个 *** 作很简单,但是很常用。不仅可以写入普通的图像数据,还能将多个图像写入一个TIFF文件,也可以将多个图像文件连续显示以生成一个GIF动画。

保存普通数据的例子:

A = rand(50);

imwrite(A,‘myGraypng’)

2总结

本文主要总结了几种在MATLAB中经常用到的保存数据的语句,主要包括CTR+S,save,saveas,savefig,imwrite。

记录在此主要用于自己查找,以及可能为别人带来一点便利。

3引用

[1] MATLAB R2020a,帮助文档。

用matlab实现数据采集的方法

我们在这里介绍两种共同学习参考。

① 直接利用MATLAB数据采集箱中提供的的函数命令进行采集,即wavrecord 。wavrecord是利用Windows 音频输入设备记录声音, 其调用格式为: y=wavrecord(n ,fs ,ch ,dtype) ;

式中n 为采样的点数,决定了录音长度;

fs为采样频率,默认值为11025Hz,还可根据要求自己选择合适的采样率;

ch为声道数,默认值为1,表示单声道,如果指定为2,则采样为双声道立体声数据;

dtype为采样数据的存储格式,用字符串指定,可以是‘double’、‘single’、‘int16’、‘int8’,指定存储格式的同时也就规定了每个采样值量化的精度,int8 对应8 位精度采样,其它都是16 位采样精度。 在我们的实验中参数这样选择:

n=1024 fs=44100 ch=1

dtype=’double’

② 采用对声卡产生一个模拟输入对象的方式进行采集。数据采集过程可以分为四步:

1) 初始化。Matlab将声卡等设备都作对象处理,其后的一切 *** 作都不与硬件直相关,而是通过对该对象的 *** 作来作用于硬件设备,所以首先要对声卡产生一个模拟输入对象:

ai = analoginput (’winsound’) ai ——Matlab 中的变量,它是一个模拟输入设备对象句柄,所有的数据采集过程都是通过对该句柄的 *** 作来实现;

analoginput ( ) ——模拟输入设备对象建立函数,通过该函数将A/ D 转换硬件映射为Matlab workspace 中的一个模拟输入设备对象句柄;

winsound——声卡设备驱动程序,Matlab 软件内含该驱动程序。 2) 配置。给ai对象添加通道,设置采样频率。 addchannel (ai ,1);%添加通道

fs = 44100; %采样频率设置为441KHz aiSampleRate = fs ;%设置采样频率 3) 采样。启动设备对象,开始采集数据。 t = 2s ; %设定采样时间 start (ai); %启动设备对象

data = get (ai ,t fs) ; %获得采样数据 4) 终止。停止对象并删除对象。 stop (ai) ; delete (ai) ;

这样便完成了一次完整的数据采集过程,采样频率和采样时间都是由用户输入的,十分方便。

Matlab中存储及读取数据

我们在使用MATLAB过程中,免不了希望将运算过程中的某些数据「储存」起来,以便下次使用再「读取」利 用。「储存」和「读取」的指令分别是save及load,而save的数据型态又分为:(1)双位元格式 (binary format) 的 MAT-file,(2) ASCII 格式的 ASCII-file。MAT-file 是以双位元字元储存,可让电脑在读出/入(input/output) 速率加 快,其格式为testmat(test为档名),MATLAB将档案的型态预设为MAT-file;而ASCII-file则是以可辨识的字元 储存,但会降低电脑在读出/入的速率,其格式为testdat(test为档名)。如果你的数据是只在MATLAB中产生 及被使用,那最好使用MAT-file。ASCII-file则必须用在当数据档要为其它不是MATLAB的应用软体读取时。

另外要注意,当save成MAT档是储存变数本身,而非直接储存变数的数据;而save成ASCII档则是直接储存变数的数值。

这二者储存的差异,造成在读取MAT档和ASCII档的数据有所不同,详见以下的范例。

须注意的是在储存及读取数据时,MAT-file或是ASCII-file的档最好为矩阵型态,否则可能在读取时有困难。数 据储存成矩阵的大小可以为m×n,其中m是列的数目,n则为行的数目。

以下就是几个save, load的使用范例

>> x=1:5; y=11:15; % 先产生二个列阵列 (row array} x, y

>> save data1 x y % 是将 x,y 二个变数的数值存入 data1 这个MAT-file,

%即data1其实是data1mat。data1mat 的内容为变数x, y,而非(1:5, 11:15) 的数据

>> save data2dat x y -ascii % 如果要将data1改以ASCII格式储存,则须加上-ascii

% 的选项。data2dat 的内容为(1:5, 11:15) 的数据

>> type data2dat % type 指令可以将 data2dat 的内容列出

>> load data1 % 读取 data1mat 档

>> x, y % 叫出 data1mat中的变数来读取其内容(1:5, 11:15)

>> load data2dat % 读取 data2dat 档

>> x2=data2(1,:); y2=data2(2,:); % 将data2中的第一及第二列数据分别以x2及y2

%变数读入,之后在运算中即可使用这二列数据

>> x=21:25; y=31:35;

>> save data3dat x y -ascii

>> load data3dat;

>> x3=data3(1,:); y3=data3(2,:); % 将data3中的第一及第二列数据分别以x3及y3 变数读入

%,之后在运算中即可使用这二列数据

>> A=[1 2 3; 4 5 6];

>> save data4dat A -ascii %是将A阵列的数值存入data4这个ASCII-file

>> load data4dat

>> x4=data4(:,1); % 令 x4 为 data4 的第一行数据

>> y4=data4(:,2); % 令 y4 为 data4 的第二行数据

>> z4=data4(:,3); % 令 z4 为 data4 的第三行数据

以上就是关于matlab如何保留最新的十五个数据全部的内容,包括:matlab如何保留最新的十五个数据、matlab怎么实现数据采集和存储、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9720039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存