matlab与频谱分析Word格式文档下载.docx
- 文档编号:18908697
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:18
- 大小:26.52KB
matlab与频谱分析Word格式文档下载.docx
《matlab与频谱分析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《matlab与频谱分析Word格式文档下载.docx(18页珍藏版)》请在冰豆网上搜索。
C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。
输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制。
因此也把这种文件称作“流式文件”。
2.文本模式(textmode)和二进制模式(binarymode)有什么区别?
流可以分为两种类型:
文本流和二进制流。
文本流是解释性的,最长可达255个字符,其中回车/换行将被转换为换行符“\n”,(如果以"
文本"
方式打开一个文件,那么在读字符的时候,系统会把所有的"
\r\n"
序列转成"
\n"
,在写入时把"
转成"
)。
二进制流是非解释性的,一次处理一个字符,并且不转换字符。
注:
\n一般会操作系统被翻译成"
行的结束"
,即LF(Line-Feed)
\r会被翻译成"
回车"
,即CR(Cariage-Return)
对于文本文件的新行,在UNIX上,一般用\n(LF)来表示,Mac上用\r(CR)来表示,
Windows上是用\n\r(CR-LF)来表示。
通常,文本流用来读写标准的文本文件,或者将字符输出到屏幕或打印机,或者接受键盘的输入;
而二进制流用来读写二进制文件(例如图形或字处理文档),或者读取鼠标输入,或者读写调制解调器。
如果用文本方式打开二进制文件,会把“0D
0A”自动变换成“\n”来存在内存中。
写入的时候反向处理。
而二进制方式打开的话,就不会有这个过程。
但是,Unicode/UTF/UCS格式的文件,必须用二进制方式打开和读写。
--------------------------------------------------------------------------------------------------------------------------------------------------
上述基础其实大可以略过,简言之,对用户来说:
在matlab中存储成为二进制还是文本文件取决于fopen的方式,如果用wt,则存储为文本文件,这样用记事本打开就可以正常显示了;
如果用w则存储为二进制文件,这样用记事本打开会出现小黑方块,要正常显示的话,可以用写字板或UltraEdit等工具打开。
二.Matlab的I/O文件操作使用技巧和总结:
1.Matlab支持的I/O文件(对应“取/存”操作)类型:
(所有文件I/O程序不需要特殊的工具箱)
Description
ThistableshowsthefileformatsthattheMATLAB®
softwareiscapableofreading.
FileFormat
Extension
FileContent
ReadCommand
Returns
Text
MAT
SavedMATLABworkspace
load
Variablesinfile
CSV
Comma-separatednumbers
csvread
Doublearray
DAT
Formattedtext
importdata
DLM
Delimitedtext
dlmread
TAB
Tab-separatedtext
ScientificData
CDF
DatainCommonDataFormat
cdfread
CellarrayofCDFrecords
FITS
FlexibleImageTransportSystemdata
fitsread
Primaryorextensiontabledata
HDF4
DatainHierarchicalDataFormat,version4
hdfread
HDF4orHDF-EOS2dataset
HDF5
DatainHierarchicalDataFormat,version5
hdf5read
HDF5orHDF-EOS5dataset
Spreadsheet
XLS
Microsoft®
Excel®
worksheet
xlsread
Doubleorcellarray
WK1
Lotus123worksheet
wk1read
Image
BMP
BMPimage
imread
Truecolororindexedimage
CUR
Cursorimage
Indexedimage
GIF
GIFimage
HDF4image
Truecolor,grayscale,orindexedimage(s)
ICO
Iconimage
JPEG
JPEGimage
Truecolororgrayscaleimage
PBM
PBMimage
Grayscaleimage
PCX
PCXimage
PGM
PGMimage
PNG
PNGimage
Truecolor,grayscale,orindexedimage
PPM
PPMimage
Truecolorimage
RAS
SUNrasterimage
Truecolororindexed
TIFF
TIFFimage
XWD
XWDimage
Video(allplatforms)
AVI
AVImovie
aviread
MATLABmovie
Video(Windows®
andMac®
platforms)
mmreader
Truecolorimage(s)
MPG
MPEG1
MPEG
MPEG1andMPEG2videos
Video(Windowsplatformonly)
ASF
WindowsMediavideo
ASX
WMV
Video(Macplatformonly)
3GP
3GPPmobilevideo
3G2
3GPP2mobilevideo
DV
Digitalvideostream
MP4
MPEG-4video
M4V
MOV
Quicktimemovie
Audiofile
AU
NeXT/SUNsound
auread
Sounddataandsamplerate
SND
WAV
MicrosoftWAVEsound
wavread
(注:
从上表可以看到,matlab不支持doc格式的文档存取(因为doc文档包含很多格式控制符),请改用txt或者dat格式)
2.Matlab的I/O文件指南:
以下是部分对应的中文译文:
--------------------------------------------------------------转---------------------------------------------------------------------------
本技术支持指南主要处理:
ASCII,binary,andMATfiles.
要得到MATLAB中可用来读写各种文件格式的完全函数列表,可以键入以下命令:
helpiofun
MATLAB中有两种文件I/O程序:
highlevelandlowlevel.
Highlevelroutines:
包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程。
Lowlevelroutines:
可以更加灵活的完成相对特殊的任务,需要较多的额外编程。
Highlevelroutines包括现成的函数,可以用来读写特殊格式的数据,并且只需要少量的编程。
举个例子,如果你有一个包含数值和字母的文本文件(textfile)想导入MATLAB,你可以调用一些lowlevelroutines自己写一个函数,或者是简单的用TEXTREAD函数。
使用highlevelroutines的关键是:
文件必须是相似的(homogeneous),换句话说,文件必须有一致的格式。
下面的段落描述一些highlevelfileI/Oroutines并给出一些例子帮助理解概念。
LOAD/SAVE
主要的highlevelfileI/Oroutines是LOAD和SAVE函数。
LOAD
可以读MAT-filedata或者用空格间隔的格式相似的ASCIIdata.SAVE可以将MATLAB变量写入MAT-file格式或者空格间隔的ASCIIdata。
大多数情况下,语法相当简单。
下面的例子用到数值由空格间隔的ASCIIfilesample_file.txt:
154168
543268
684321
907876
598123
Example:
用LOADandSAVE读写数据
[Copytoclipboard][-]
CODE:
%Loadthefiletothematrix,M:
M=load('
sample_file.txt'
)
%Add5toM:
M=M+5
%SaveMtoa.matfilecalled'
sample_file_plus5.mat'
:
savesample_file_plus5M
%SaveMtoanASCII.txtfilecalled'
sample_file_plus5.txt'
:
savesample_file_plus5.txtM-ascii
UIGETFILE/UIPUTFILE
UIGETFILE/UIPUTFILE是基于图形用户界面(GUI)的。
会弹出对话框,列出当前目录的文件和目录,提示你选择一个文件。
UIGETFILE让你选择一个文件来写(类似Windows‘另存为’选项?
)。
用UIGETFILE,可以选择已存在的文件改写,也可以输入新的文件名。
两个函数的返回值是所选文件名和路径。
用UIGETFILE从当前目录选择一个M-file
%ThiscommandlistsalltheM-filesinthecurrentdirectoryand
%returnsthenameandpathoftheselectedfile
[fname,pname]=uigetfile('
*.m'
'
SampleDialogBox'
注意:
UIGETFILE一次只能选择一个文件。
UIIMPORT/IMPORTDATA
UIIMPORT是一个功能强大,易于使用的基于GUI的highlevelroutine,用于读complexdatafiles。
文件也必须是homogeneous。
IMPORTDATA形成UIIMPORT的功能,不打开GUI。
可以将IMPORTDATA用于函数或者脚本中,因为在函数或者脚本中基于GUI的文件导入机制并不理想。
下面的例子用到包含几行文件头和文本、数值数据的文件'
sample_file2.txt'
:
Thisisafileheader.
Thisisfileisanexample.
col1col2col3col4
A
1
4
612.000
B
613.000
C
614.000
D
615.000
UsingIMPORTDATAtoreadinafilewithheaders,text,andnumericdata
%Thisreadsinthefile'
andcreatesa
%structureDthatcontainsbothdataandtextdata.
%NotetheIMPORTDATAcommandspecifiesawhitespace
%asthedelimiterofthefile,butIMPORTDATAcanusually
%detectthisonitsown
D=importdata('
'
)
%原文有误?
可以通过访问结构D的数据和文本域,来看结构D中的真实值,例如输入:
data=D.data
text=D.textdata
可以用UIIMPORT读同一个文件并得到同样的结构.
对于ASCIIdata,你必须检验导入向导正确的识别了列分隔符。
TEXTREAD/STRREAD
TEXTREAD是一个强大的动态highlevelroutine,设计用来读ASCII格式的文本和/或数值数据文件。
STRREAD除是从字符串而不是文件读以外,类似于TEXTREAD。
两个函数可以用许多参数来改变其具体的工作方式,他们返回读入指定输出的数据。
他们有效的提供给你一个
“两全其美”的方法,因为他们可以用一个命令读入混合的ASCII和数值数据(highlevelroutines的做法),并且你可以改变他们以匹配你特定的应用(如同lowlevelroutines做到的)。
例子:
Example1:
UsingTEXTREADtoreadinanentirefileintoacellarray
%Thiscommandreadsinthefilefft.mintothecellarray,file
file=textread('
fft.m'
%s'
delimiter'
\n'
whitespace'
);
Example2:
UsingSTRREADtoreadthewordsinaline
%ThiscommandusesthecellarraycreatedinExample1to
%readineachwordofline28in'
file'
toacellarray,words
words=strread(file{28},'
Example3:
UsingTEXTREADtoreadintextandnumericdatafromafilewithheaders
%Thiscommandskipsthe2headerlinesatthetopofthefile
%andreadsineachcolumntothe4specifiedoutputs
[c1c2c3c4]=textread('
%s%s%s%s'
headerlines'
2)
Example4:
UsingTEXTREADtoreadinspecificrowsoftextandnumericdatafromafile
%ThiscommandreadsinrowsBandCofthefile.The'
%propertyisusedtomovedowntothedesiredstartingrowandthe
%readoperationisperformed2times
...
2,'
4)
Example
operator
[c2c3c4]=textread('
%*s%d%d%f'
3)
DLMREAD/DLMWRITE/CSVREAD
DLMREAD和DLMWRITE函数能够读写分隔的ASCIIdata,而不是用lowlevelroutines。
他们比lowlevelroutines容易使用,Lowlevelroutines用几行代码实现的功能可以用DLMREAD/DLMWRITE简化成一行。
CSVREAD用来读分隔符是逗号的文件,是DLMREAD的特殊情况。
当读空格和Tab分隔的电子数据表文件时,DLMREAD特别有用。
以'
为例:
UsingDLMREADtoreadinafilewithheaders,text,andnumericdata
andcreatesamatrix,D,
%withthenumericdatathiscommandspecifiesawhitespaceasthe
%delimiterofthefile
D=dlmread('
UsingDLMREADtoextractthefirst3columnsofthelast3rows
%Thisreadsinthefirst3columnsofthelast3rowsof
%thedatafile'
intothematrix,D_partial.
%读文件'
sample_file
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 频谱 分析
![提示](https://static.bdocx.com/images/bang_tan.gif)