matlab数值计算技巧Word文档下载推荐.docx
- 文档编号:21707303
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:12
- 大小:22.35KB
matlab数值计算技巧Word文档下载推荐.docx
《matlab数值计算技巧Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《matlab数值计算技巧Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
如果是规则的用空格隔开的数据,则采用data=textread(filename)格式调用,读出的数据记录在data矩阵中。
二、导出文本文件
save函数
A=[1234;
5678];
savemy_data.outA–ASCII
dlmwrite函数
dlmwrite('
my_data.out'
A,'
)
三、MS-Excel电子表格文件
xlsinfo获得文件信息
使用命令[type,sheets]=xlsfinfo(filename)返回文件类型type和工作表信息。
如:
[type,sheets]=xlsfinfo('
tempdata.xls'
Xlswrite导出数据
d={'
Time'
Temp'
1298;
1399;
1497}
命令xlswrite('
d,'
Temperatures'
E1'
)将单元格数组d的数据写出至tempdata.xls文件,新建工作表'
,从该工作表的E1单元格开始写入。
Xlsread读入数据
ndata=xlsread('
[ndata,headertext]=xlsread('
底层文件输入输出函数
fclose关闭文件
fopen打开文件
fread从文件中读入二进制数据
fwrite把二进制数据写入文件
fgetl逐行从文件中读取数据并放弃换行符
fgets从文件中读取行,保留换行符并把行作为字符串返回
fprintf把格式化数据写入文件
fscanf从文件中读取格式化数据
feof测试文件是否结束
ferror测试文件输入输出错误信息
frewind文件指针归零
fseek设置文件位置指针
ftell获取文件位置指针
sprintf把格式化数据写入一个字符串
sscanf使用格式控制读取字符串
底层文件输入输出函数-->
特殊函数
csvread读取逗号分隔格式的数据文件到矩阵
csvwrite写矩阵到逗号分隔格式的数据文件
dlmread把一个ASCII限定文件(数据文件)读入矩阵
dlmwrite把矩阵写入到ASCII限定文件(数据文件)
hdfHDF接口?
?
imfinfo返回图形图象文件的信息
imread读取图象(到矩阵)
imwrite写入图象
textread从文本文件读取格式化数据(important)
wk1read把Lotus123电子表格读入矩阵
wk1write把矩阵写入Lotus123wk1电子表格
xlsread读取excel表格
Example1—ReadingDifferentTypesofDataTextfilescan1.datcontainsdatainthefollowing
form:
SallyLevel112.34451.23e10infNaNYes
JoeLevel223.54609e19-inf0.001No
BillLevel334.90122e510100No
Readeachcolumnintoavariable:
scan1.dat'
C=textscan(fid,'
%s%s%f32%d8%u%f%f%s'
fclose(fid);
Note:
Spacesbetweentheconversionspecifiersareshownonlytomaketheexampleeasiertoread.Theyarenotrequired.
textscanreturnsa1-by-8cellarrayCwiththefollowingcells:
C{1}={'
Sally'
'
Joe'
Bill'
}classcell
C{2}={'
Level1'
Level2'
Level3'
C{3}=[12.34;
23.54;
34.9]classsingle
C{4}=[45;
60;
12]classint8
C{5}=[4294967295;
4294967295;
200000]classuint32
C{6}=[Inf;
-Inf;
10]classdouble
C{7}=[NaN;
0.001;
100]classdouble
C{8}={'
Yes'
No'
ThefirsttwoelementsofC{5}arethemaximumvaluesfora32-bitunsignedinteger,orintmax('
uint32'
).
eval(string)
作为一个MATLAB命令求字符串的值
eval(try,catch)
blanks(n)
返回一个n个零或空格的字符串
deblank
去掉字符串中后拖的空格
feval
求由字符串给定的函数值
findstr
从一个字符串内找出字符串
isletter
字母存在时返回真值
isspace
空格字符存在时返回真值
isstr
输入是一个字符串,返回真值
lasterr
返回上一个所产生MATLAB错误的字符串
strcmp
字符串相同,返回真值
strrep
用一个字符串替换另一个字符串
strtok
在一个字符串里找出第一个标记
建立一个字符串向量,然后对该向量做如下处理:
(1)取第1~5个字符组成的子字符串。
(2)将字符串倒过来重新排列。
(3)将字符串中的小写字母变成相应的大写字母,其余字符不变。
(4)统计字符串中小写字母的个数。
S='
ThisIsATest.'
s1=S(1:
5)
s2=fliplr(S)
s3=S;
flag=s3<
='
z'
&
s3>
a'
s3(flag)=s3(flag)-'
+'
A'
s4=sum(S<
S>
四.数据的输入与输出(Dateinputandoutput)
1.数据的输入(Datainput)
常用方法:
(a)
键盘输入:
(keyboardinput)数据少时较方便,多时不益使用;
(b)
用M文件产生数据:
(GeneratedatabyM-file)使用于较多数据的输入;
(C)从ASCⅡ码文件装载数据:
(LoaddatafromASCⅡcodefile)
(c)
对文本格式的数据文件可用load命令直接读入MATLAB,其内容存放在以文件名命名的变量中
(d)
利用fopen,fscanf,fread及MATLAB其他低层I/O命令读取数据:
用于读取其他外部应用程序建立的各种特定格式的数据。
2。
数据的输出(dataoutput)
利用diary命令输出语句:
运行diary命令可以在当前工作目录上产生一个名为diary的日记文件,文件内容可以输出。
关闭日记文件的命令为dairyoff.
利用Notebook获取数据:
于dairy用法相仿优点是文字质量高,版面规范,且M-book中的命令可以随时运行或修改,MATLAB工作空间中的数据随之改变。
运行Notebook要求计算机上装有MS-Word。
NOTEBOOKOpenanm-bookinMicrosoftWord(Windowsonly).
NOTEBOOK,byitself,launchesMicrosoftWordandcreatesanewm-bookcalled"
Document1."
NOTEBOOK(FILENAME)launchesMicrosoftWordandopensthem-book
FILENAME.
NOTEBOOK('
-SETUP'
)runsaninteractivesetupfunctionfortheNotebook.TheuserispromptedfortheversionofMicrosoftWordandthelocationsofseveralfiles.
WORDVER,WORDLOC,TEMPLATELOC)setsuptheNotebookusingthespecifiedinformation.
WORDVERistheversionofMicrosoftWord(oneof'
97'
or'
2000'
2002'
),WORDLOCisthedirectorycontainingwinword.exe,andTEMPLATELOCisaMicrosoftWordtemplatedirectory.
Examples:
notebook
notebookc:
\documents\mymbook.doc
notebook-setup
ForthecaseinwhichMicrosoftWord97(winword.exe)residesinthe
C:
\ProgramFiles\MicrosoftOffice97\Officedirectory,andtheMicrosoftWordtemplatesresideintheC:
\ProgramFiles\MicrosoftOffice97\Templatesdirectory:
wordver='
wordloc='
\ProgramFiles\MicrosoftOffice97\Office'
templateloc='
\ProgramFiles\MicrosoftOffice97\Templates'
notebook('
-setup'
wordver,wordloc,templateloc)
(c)save命令输出数据:
将当前内存中的变量存到文件中去。
(d)利用fopen,fprintf,fwrite及其他底层I/O命令输出特殊格式的数据:
如需要在其他外部应用程序中使用MATLAB输出的特定格式的数据,使用此方法。
3.Save和load命令的使用(UsingcommendLoadandSave)
(1)save(将工作空间的变量存入磁盘)命令的常用调用方法
save:
将工作空间所有的变量以二进制格式存入名为matlab.mat的缺省文件;
(a)savedfile:
将工作空间所有的变量以二进制格式存入dfile.mat文件,扩展名自动产生
(b)savedfilex:
只把变量x以二进制格式存入dfile.mat文件,扩展名自动产生
(c)savedfile.datx-ascii:
将变量x以8位ASCⅡ码形式存入dfile.mat文件;
(d)savedfile.datx-ascii-double:
将变量x以16位ASCⅡ码形式存入dfile.mat文件;
(e)save(fname,‘a’,‘-ascii’):
fname是一个预先定义好的包含文件名的字符串,该用法将变量a以ASCⅡ码格式存入fname定义的文件中。
(2)load命令的常用方法(usualapplicationofcommandload)
(a)load:
把磁盘matlab.mat的内容读入内存;
(b)loaddfile:
将磁盘文件dfile.mat内容读入内存;
(c)loaddfile.dat:
将磁盘文件dfile.mat内容读入内存,这是一个ASCⅡ码文件,系统自动将文件名定义为变量名;
a=load(fname):
fname是预先定义好的包含文件名的字符串,将由fname定义文件名的数据文件调入a中。
附:
1、命令窗口数据直接输入输出语句(Input)
可利用语句中输入的字符串内容提示用户在命令窗口直接输入程序运行所需的某些参数,
调用格式:
R=INPUT('
Howmanyapples'
):
执行后出现提示字符串,输入的内容可以是MATLAB可估值的任何表达式.输出保存在变量R中。
Whatisyourname'
'
s'
):
执行后出现提示字符串,等待字符串输入,字符串直接输出为MATLAB字符串形式。
INPUT
Promptforuserinput.
)givestheuserthepromptinthetextstringandthenwaitsforinputfromthekeyboard.TheinputcanbeanyMATLABexpression,whichisevaluated,
usingthevariablesinthecurrentworkspace,andtheresultreturnedinR.
Iftheuserpressesthereturnkeywithoutenteringanything,INPUTreturnsanemptymatrix.
)givesthepromptinthetextstringandwaitsforcharacterstringinput.
Thetypedinputisnotevaluated;
thecharactersaresimplyreturnedasa
MATLABstring.
Thetextstringforthepromptmaycontainoneormore'
\n'
.The'
meansskiptothebeginningofthenextline.Thisallowsthepromptstringtospanseverallines.Tooutput
justa'
\'
use'
\\'
.
例:
编制可由命令窗口输入被处理温度数据的程序。
k=input('
选择转换方式(1--摄氏转换为华氏,2--华氏转换为摄氏):
ifk~=1&
k~=2
disp('
请指定转换方式'
return
end
tin=input('
输入待转变的温度(允许输入数组):
ifk==1
tout=tin*9/5+32;
%摄氏转换为华氏
k1=2;
elseifk==2
tout=(tin-32)*5/9;
%华氏转换为摄氏
k1=1;
str=['
°
C'
F'
];
disp(['
转换前的温度'
转换后的温度'
])
num2str(tin),str(k,:
),'
num2str(tout),str(k1,:
)])
%不同的样条插值函数应用方法:
yi=interp1(x,y,xi,‘method’)
yi=method(x,y,xi)
有一正弦衰减数据y=sin(x).*exp(-x/10),其中x=0:
pi/5:
4*pi,用三次样条法进行插值。
未插值:
x0=0:
4*pi;
y0=sin(x0).*exp(-x0/10);
plot(x0,y0)
方法1:
x=0:
pi/20:
y=spline(x0,y0,x);
plot(x0,y0,'
or'
x,y,'
b'
方法2:
y=interp1(x0,y0,x,’splin’)
strfind和findstr是不一样的
>
a='
abcd'
b='
abcdefg'
strfind(a,b)
ans=[]
findstr(a,b)
ans=1
matlab输入输出
Excel的文件使用函数:
xlsread
MATLAB文件操作——二进制文件的读写
1)写二进制文件
fwrite函数按照指定的数据精度将矩阵中的元素写入到文件中。
其调用格式为:
COUNT=fwrite(fid,A,precision)
说明:
其中COUNT返回所写的数据元素个数(可缺省),fid为文件句柄,A用来存放写入文件的数据,precision代表数据精度,常用的数据精度有:
char、uchar、int、long、float、double等。
缺省数据精度为uchar,即无符号字符格式。
例6.8将一个二进制矩阵存入磁盘文件中。
a=[123456789];
fid="
fopen"
('
d:
\test.bin'
wb'
)%以二进制数据写入方式打开文件
fid=
3%其值大于0,表示打开成功
fwrite(fid,a,'
double'
ans=
9%表示写入了9个数据
fclose(fid)
ans=
0%表示关闭成功
2)读二进制文件
fread函数可以读取二进制文件的数据,并将数据存入矩阵。
[A,COUNT]=fread(fid,size,precision)
其中A是用于存放读取数据的矩阵、COUNT是返回所读取的数据元素个数、fid为文件句柄、size为可选项,若不选用则读取整个文件内容;
若选用则它的值可以是下列值:
N(读取N个元素到一个列向量)、inf(读取整个文件)、[M,N](读数据到M×
N的矩阵中,数据按列存放)。
precision用于控制所写数据的精度,其形式与fwrite函数相同。
MATLAB文件操作——文本文件的读写2009-10-2013:
40:
00
1)读文本文件
fscanf函数可以读取文本文件的内容,并按指定格式存入矩阵。
[A,COUNT]=fscanf(fid,format,size)
其中A用来存放读取的数据,COUNT返回所读取的数据元素个数,fid为文件句柄,format用来控制读取的数据格式,由%加上格式符组成,常见的格式符有:
d(整型)、f(浮点型)、s(字符串型)、c(字符型)等,在%与格式符之间还可以插入附加格式说明符,如数据宽度说明等。
size为可选项,决定矩阵A中数据的排列形式,它可以取下列值:
2)写文本文件
fprintf函数可以将数据按指定格式写入到文本文件中。
fprintf(fid,format,A)
fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。
例6.9创建一个字符矩阵并存入磁盘,再读出赋值给另一个矩阵。
string'
\char1.txt'
w'
fprintf(fid,'
%s'
a);
fid1=fopen('
rt'
b="
fscanf"
(fid1,'
b=
string
matlab读txt文件
fid=fopen('
fx.txt'
%得到文件号
[f,count]=fscanf(fid,'
%f%f'
[12,90]);
%把文件号1的数据读到f中。
其中f是[1290]的矩阵
%这里'
表示读取数据的形势,他是按原始数据型读出
%关闭文件
另外有的txt文件还可以用load来打开
其语句为
f=load('
fx.txt)
MATLAB文件操作——文件打开与关闭2009-10-2013:
27:
1)打开文件
fid=fopen(文件名,‘打开方式’)
其中fid用于存储文件句柄值,如果返回的句柄值大于0,则说明文件打开成功。
文件名用字符串形式,表示待打开的数据文件。
常见的打开方式如下:
‘r’:
只读方式打开文件(默认的方式),该文件必须已存在。
‘r+’:
读
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 数值 计算 技巧