matlab中fread函数的用法(matlab 函数的分类)
各位老铁们,大家好,今天由我来为大家分享matlab中fread函数的用法,以及matlab 函数的分类的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
matlab 中关于fread函数的用法
fread函数在MATLAB中的功能:fread函数可从文件中读取二进制数据
用法:
A= fread(fid, count)
A= fread(fid, count, precision)
其中fid为指针所指文件中的当前位置,count指读取的数据个数, precision表示以什么格式的数据类型读取数据。
扩展资料:
fread函数在PHP中:
(PHP 4, PHP 5)
fread:读取文件(可安全用于二进制文件)
stringfread( int handle, int length)
fread()从文件指针handle读取最多 length个字节。该函数在读取完 length个字节数,或到达 EOF的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。
在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen()函数的 mode参数要加上'b'。
当从网络流或者管道读取时,例如在读取从远程文件或popen()以及proc_open()的返回时,读取会在一个包可用之后停止。这意味着应该如下例所示将数据收集起来合并成大块。
如果只是想将一个文件的内容读入到一个字符串中,用file_get_contents(),它的性能比上面的代码好得多。
参考资料:百度百科-fread函数
matlab7.0有哪些函数可以直接用
Matlab函数大全
信源函数
randerr产生比特误差样本
randint产生均匀分布的随机整数矩阵
randsrc根据给定的数字表产生随机矩阵
wgn产生高斯白噪声
信号分析函数
biterr计算比特误差数和比特误差率
eyediagram绘制眼图
scatterplot绘制分布图
symerr计算符号误差数和符号误差率
信源编码
compand mu律/A律压缩/扩张
dpcmdeco DPCM(差分脉冲编码调制)解码
dpcmenco DPCM编码
dpcmopt优化DPCM参数
lloyds Lloyd法则优化量化器参数
quantiz给出量化后的级和输出值
误差控制编码
bchpoly给出二进制BCH码的性能参数和产生多项式
convenc产生卷积码
cyclgen产生循环码的奇偶校验阵和生成矩阵
cyclpoly产生循环码的生成多项式
decode分组码解码器
encode分组码编码器
gen2par将奇偶校验阵和生成矩阵互相转换
gfweight计算线性分组码的最小距离
hammgen产生汉明码的奇偶校验阵和生成矩阵
rsdecof对Reed-Solomon编码的ASCII文件解码
rsencof用Reed-Solomon码对ASCII文件编码
rspoly给出Reed-Solomon码的生成多项式
syndtable产生伴随解码表
vitdec用Viterbi法则解卷积码
(误差控制编码的低级函数)
bchdeco BCH解码器
bchenco BCH编码器
rsdeco Reed-Solomon解码器
rsdecode用指数形式进行Reed-Solomon解码
rsenco Reed-Solomon编码器
rsencode用指数形式进行Reed-Solomon编码
调制与解调
ademod模拟通带解调器
ademodce模拟基带解调器
amod模拟通带调制器
amodce模拟基带调制器
apkconst绘制圆形的复合ASK-PSK星座图
ddemod数字通带解调器
ddemodce数字基带解调器
demodmap解调后的模拟信号星座图反映射到数字信号
dmod数字通带调制器
dmodce数字基带调制器
modmap把数字信号映射到模拟信号星座图(以供调制)
qaskdeco从方形的QASK星座图反映射到数字信号
qaskenco把数字信号映射到方形的QASK星座图
专用滤波器
hank2sys把一个Hankel矩阵转换成一个线性系统模型
hilbiir设计一个希尔伯特变换IIR滤波器
rcosflt升余弦滤波器
rcosine设计一个升余弦滤波器
(专用滤波器的低级函数)
rcosfir设计一个升余弦FIR滤波器
rcosiir设计一个升余弦IIR滤波器
信道函数
awgn添加高斯白噪声
伽罗域计算
gfadd伽罗域上的多项式加法
gfconv伽罗域上的多项式乘法
gfcosets生成伽罗域的分圆陪集
gfdeconv伽罗域上的多项式除法
gfdiv伽罗域上的元素除法
gffilter在质伽罗域上用多项式过滤数据
gflineq在至伽罗域上求Ax=b的一个特解
gfminpol求伽罗域上元素的最小多项式
gfmul伽罗域上的元素乘法
gfplus GF(2^m)上的元素加法
gfpretty以通常方式显示多项式
gfprimck检测多项式是否是基本多项式
gfprimdf给出伽罗域的MATLAB默认的基本多项式
gfprimfd给出伽罗域的基本多项式
gfrank伽罗域上矩阵求秩
gfrepcov GF(2)上多项式的表达方式转换
gfroots质伽罗域上的多项式求根
gfsub伽罗域上的多项式减法
gftrunc使多项式的表达最简化
gftuple简化或转换伽罗域上元素的形式
工具函数
bi2de把二进制向量转换成十进制数
de2bi把十进制数转换成二进制向量
erf误差函数
erfc余误差函数
istrellis检测输入是否MATLAB的trellis结构(structure)
marcumq通用Marcum Q函数
oct2dec八进制数转十进制数
poly2trellis把卷积码多项式转换成MATLAB的trellis描述
vec2mat把向量转换成矩阵
——————————————————————————————————————————————————
A a
abs绝对值、模、字符的ASCII码值
acos反余弦
acosh反双曲余弦
acot反余切
acoth反双曲余切
acsc反余割
acsch反双曲余割
align启动图形对象几何位置排列工具
all所有元素非零为真
angle相角
ans表达式计算结果的缺省变量名
any所有元素非全零为真
area面域图
argnames函数M文件宗量名
asec反正割
asech反双曲正割
asin反正弦
asinh反双曲正弦
assignin向变量赋值
atan反正切
atan2四象限反正切
atanh反双曲正切
autumn红黄调秋色图阵
axes创建轴对象的低层指令
axis控制轴刻度和风格的高层指令
B b
bar二维直方图
bar3三维直方图
bar3h三维水平直方图
barh二维水平直方图
base2dec X进制转换为十进制
bin2dec二进制转换为十进制
blanks创建空格串
bone蓝色调黑白色图阵
box框状坐标轴
break while或for环中断指令
brighten亮度控制
C c
capture(3版以前)捕获当前图形
cart2pol直角坐标变为极或柱坐标
cart2sph直角坐标变为球坐标
cat串接成高维数组
caxis色标尺刻度
cd指定当前目录
cdedit启动用户菜单、控件回调函数设计工具
cdf2rdf复数特征值对角阵转为实数块对角阵
ceil向正无穷取整
cell创建元胞数组
cell2struct元胞数组转换为构架数组
celldisp显示元胞数组内容
cellplot元胞数组内部结构图示
char把数值、符号、内联类转换为字符对象
chi2cdf分布累计概率函数
chi2inv分布逆累计概率函数
chi2pdf分布概率密度函数
chi2rnd分布随机数发生器
chol Cholesky分解
clabel等位线标识
cla清除当前轴
class获知对象类别或创建对象
clc清除指令窗
clear清除内存变量和函数
clf清除图对象
clock时钟
colorcube三浓淡多彩交叉色图矩阵
colordef设置色彩缺省值
colormap色图
colspace列空间的基
close关闭指定窗口
colperm列排序置换向量
comet彗星状轨迹图
comet3三维彗星轨迹图
compass射线图
compose求复合函数
cond(逆)条件数
condeig计算特征值、特征向量同时给出条件数
condest范-1条件数估计
conj复数共轭
contour等位线
contourf填色等位线
contour3三维等位线
contourslice四维切片等位线图
conv多项式乘、卷积
cool青紫调冷色图
copper古铜调色图
cos余弦
cosh双曲余弦
cot余切
coth双曲余切
cplxpair复数共轭成对排列
csc余割
csch双曲余割
cumsum元素累计和
cumtrapz累计梯形积分
cylinder创建圆柱
D d
dblquad二重数值积分
deal分配宗量
deblank删去串尾部的空格符
dec2base十进制转换为X进制
dec2bin十进制转换为二进制
dec2hex十进制转换为十六进制
deconv多项式除、解卷
delaunay Delaunay三角剖分
del2离散Laplacian差分
demo Matlab演示
det行列式
diag矩阵对角元素提取、创建对角阵
diary Matlab指令窗文本内容记录
diff数值差分、符号微分
digits符号计算中设置符号数值的精度
dir目录列表
disp显示数组
display显示对象内容的重载函数
dlinmod离散系统的线性化模型
dmperm矩阵Dulmage-Mendelsohn分解
dos执行DOS指令并返回结果
double把其他类型对象转换为双精度数值
drawnow更新事件队列强迫Matlab刷新屏幕
dsolve符号计算解微分方程
E e
echo M文件被执行指令的显示
edit启动M文件编辑器
eig求特征值和特征向量
eigs求指定的几个特征值
end控制流FOR等结构体的结尾元素下标
eps浮点相对精度
error显示出错信息并中断执行
errortrap错误发生后程序是否继续执行的控制
erf误差函数
erfc误差补函数
erfcx刻度误差补函数
erfinv逆误差函数
errorbar带误差限的曲线图
etreeplot画消去树
eval串演算指令
evalin跨空间串演算指令
exist检查变量或函数是否已定义
exit退出Matlab环境
exp指数函数
expand符号计算中的展开操作
expint指数积分函数
expm常用矩阵指数函数
expm1 Pade法求矩阵指数
expm2 Taylor法求矩阵指数
expm3特征值分解法求矩阵指数
eye单位阵
ezcontour画等位线的简捷指令
ezcontourf画填色等位线的简捷指令
ezgraph3画表面图的通用简捷指令
ezmesh画网线图的简捷指令
ezmeshc画带等位线的网线图的简捷指令
ezplot画二维曲线的简捷指令
ezplot3画三维曲线的简捷指令
ezpolar画极坐标图的简捷指令
ezsurf画表面图的简捷指令
ezsurfc画带等位线的表面图的简捷指令
F f
factor符号计算的因式分解
feather羽毛图
feedback反馈连接
feval执行由串指定的函数
fft离散Fourier变换
fft2二维离散Fourier变换
fftn高维离散Fourier变换
fftshift直流分量对中的谱
fieldnames构架域名
figure创建图形窗
fill3三维多边形填色图
find寻找非零元素下标
findobj寻找具有指定属性的对象图柄
findstr寻找短串的起始字符下标
findsym机器确定内存中的符号变量
finverse符号计算中求反函数
fix向零取整
flag红白蓝黑交错色图阵
fliplr矩阵的左右翻转
flipud矩阵的上下翻转
flipdim矩阵沿指定维翻转
floor向负无穷取整
flops浮点运算次数
flow Matlab提供的演示数据
fmin求单变量非线性函数极小值点(旧版)
fminbnd求单变量非线性函数极小值点
fmins单纯形法求多变量函数极小值点(旧版)
fminunc拟牛顿法求多变量函数极小值点
fminsearch单纯形法求多变量函数极小值点
fnder对样条函数求导
fnint利用样条函数求积分
fnval计算样条函数区间内任意一点的值
fnplt绘制样条函数图形
fopen打开外部文件
for构成for环用
format设置输出格式
fourier Fourier变换
fplot返函绘图指令
fprintf设置显示格式
fread从文件读二进制数据
fsolve求多元函数的零点
full把稀疏矩阵转换为非稀疏阵
funm计算一般矩阵函数
funtool函数计算器图形用户界面
fzero求单变量非线性函数的零点
G g
gamma函数
gammainc不完全函数
gammaln函数的对数
gca获得当前轴句柄
gcbo获得正执行"回调"的对象句柄
gcf获得当前图对象句柄
gco获得当前对象句柄
geomean几何平均值
get获知对象属性
getfield获知构架数组的域
getframe获取影片的帧画面
ginput从图形窗获取数据
global定义全局变量
gplot依图论法则画图
gradient近似梯度
gray黑白灰度
grid画分格线
griddata规则化数据和曲面拟合
gtext由鼠标放置注释文字
guide启动图形用户界面交互设计工具
H h
harmmean调和平均值
help在线帮助
helpwin交互式在线帮助
helpdesk打开超文本形式用户指南
hex2dec十六进制转换为十进制
hex2num十六进制转换为浮点数
hidden透视和消隐开关
hilb Hilbert矩阵
hist频数计算或频数直方图
histc端点定位频数直方图
histfit带正态拟合的频数直方图
hold当前图上重画的切换开关
horner分解成嵌套形式
hot黑红黄白色图
hsv饱和色图
I i
if-else-elseif条件分支结构
ifft离散Fourier反变换
ifft2二维离散Fourier反变换
ifftn高维离散Fourier反变换
ifftshift直流分量对中的谱的反操作
ifourier Fourier反变换
i, j缺省的"虚单元"变量
ilaplace Laplace反变换
imag复数虚部
image显示图象
imagesc显示亮度图象
imfinfo获取图形文件信息
imread从文件读取图象
imwrite把imwrite把图象写成文件
ind2sub单下标转变为多下标
inf无穷大
info MathWorks公司网点地址
inline构造内联函数对象
inmem列出内存中的函数名
input提示用户输入
inputname输入宗量名
int符号积分
int2str把整数数组转换为串数组
interp1一维插值
interp2二维插值
interp3三维插值
interpn N维插值
interpft利用FFT插值
intro Matlab自带的入门引导
inv求矩阵逆
invhilb Hilbert矩阵的准确逆
ipermute广义反转置
isa检测是否给定类的对象
ischar若是字符串则为真
isequal若两数组相同则为真
isempty若是空阵则为真
isfinite若全部元素都有限则为真
isfield若是构架域则为真
isglobal若是全局变量则为真
ishandle若是图形句柄则为真
ishold若当前图形处于保留状态则为真
isieee若计算机执行IEEE规则则为真
isinf若是无穷数据则为真
isletter若是英文字母则为真
islogical若是逻辑数组则为真
ismember检查是否属于指定集
isnan若是非数则为真
isnumeric若是数值数组则为真
isobject若是对象则为真
isprime若是质数则为真
isreal若是实数则为真
isspace若是空格则为真
issparse若是稀疏矩阵则为真
isstruct若是构架则为真
isstudent若是Matlab学生版则为真
iztrans符号计算Z反变换
J j, K k
jacobian符号计算中求Jacobian矩阵
jet蓝头红尾饱和色
jordan符号计算中获得 Jordan标准型
keyboard键盘获得控制权
kron Kronecker乘法规则产生的数组
L l
laplace Laplace变换
lasterr显示最新出错信息
lastwarn显示最新警告信息
leastsq解非线性最小二乘问题(旧版)
legend图形图例
lighting照明模式
line创建线对象
lines采用plot画线色
linmod获连续系统的线性化模型
linmod2获连续系统的线性化精良模型
linspace线性等分向量
ln矩阵自然对数
load从MAT文件读取变量
log自然对数
log10常用对数
log2底为2的对数
loglog双对数刻度图形
logm矩阵对数
logspace对数分度向量
lookfor按关键字搜索M文件
lower转换为小写字母
lsqnonlin解非线性最小二乘问题
lu LU分解
M m
mad平均绝对值偏差
magic魔方阵
maple&nb, sp;运作 Maple格式指令
mat2str把数值数组转换成输入形态串数组
material材料反射模式
max找向量中最大元素
mbuild产生EXE文件编译环境的预设置指令
mcc创建MEX或EXE文件的编译指令
mean求向量元素的平均值
median求中位数
menuedit启动设计用户菜单的交互式编辑工具
mesh网线图
meshz垂帘网线图
meshgrid产生"格点"矩阵
methods获知对指定类定义的所有方法函数
mex产生MEX文件编译环境的预设置指令
mfunlis能被mfun计算的MAPLE经典函数列表
mhelp引出 Maple的在线帮助
min找向量中最小元素
mkdir创建目录
mkpp逐段多项式数据的明晰化
mod模运算
more指令窗中内容的分页显示
movie放映影片动画
moviein影片帧画面的内存预置
mtaylor符号计算多变量Taylor级数展开
N n
ndims求数组维数
NaN非数(预定义)变量
nargchk输入宗量数验证
nargin函数输入宗量数
nargout函数输出宗量数
ndgrid产生高维格点矩阵
newplot准备新的缺省图、轴
nextpow2取最接近的较大2次幂
nnz矩阵的非零元素总数
nonzeros矩阵的非零元素
norm矩阵或向量范数
normcdf正态分布累计概率密度函数
normest估计矩阵2范数
norminv正态分布逆累计概率密度函数
normpdf正态分布概率密度函数
normrnd正态随机数发生器
notebook启动Matlab和Word的集成环境
null零空间
num2str把非整数数组转换为串
numden获取最小公分母和相应的分子表达式
nzmax指定存放非零元素所需内存
O o
ode1非Stiff微分方程变步长解算器
ode15s Stiff微分方程变步长解算器
ode23t适度Stiff微分方程解算器
ode23tb Stiff微分方程解算器
ode45非Stiff微分方程变步长解算器
odefile ODE文件模板
odeget获知ODE选项设置参数
odephas2 ODE输出函数的二维相平面图
odephas3 ODE输出函数的三维相空间图
odeplot ODE输出函数的时间轨迹图
odeprint在Matlab指令窗显示结果
odeset创建或改写 ODE选项构架参数值
ones全1数组
optimset创建或改写优化泛函指令的选项参数值
orient设定图形的排放方式
orth值空间正交化
P p
pack收集Matlab内存碎块扩大内存
pagedlg调出图形排版对话框
patch创建块对象
path设置Matlab搜索路径的指令
pathtool搜索路径管理器
pause暂停
pcode创建预解译P码文件
pcolor伪彩图
peaks Matlab提供的典型三维曲面
permute广义转置
pi(预定义变量)圆周率
pie二维饼图
pie3三维饼图
pink粉红色图矩阵
pinv伪逆
plot平面线图
plot3三维线图
plotmatrix矩阵的散点图
plotyy双纵坐标图
poissinv泊松分布逆累计概率分布函数
poissrnd泊松分布随机数发生器
pol2cart极或柱坐标变为直角坐标
polar极坐标图
poly矩阵的特征多项式、根集对应的多项式
poly2str以习惯方式显示多项式
poly2sym双精度多项式系数转变为向量符号多项式
polyder多项式导数
polyfit数据的多项式拟合
polyval计算多项式的值
polyvalm计算矩阵多项式
pow2 2的幂
ppval计算分段多项式
pretty以习惯方式显示符号表达式
print打印图形或SIMULINK模型
printsys以习惯方式显示有理分式
prism光谱色图矩阵
procread向MAPLE输送计算程序
profile函数文件性能评估器
propedit图形对象属性编辑器
pwd显示当前工作目录
Q q
quad低阶法计算数值积分
quad8高阶法计算数值积分(QUADL)
quit推出Matlab环境
quiver二维方向箭头图
quiver3三维方向箭头图
R r
rand产生均匀分布随机数
randn产生正态分布随机数
randperm随机置换向量
range样本极差
rank矩阵的秩
rats有理输出
rcond矩阵倒条件数估计
real复数的实部
reallog在实数域内计算自然对数
realpow在实数域内计算乘方
realsqrt在实数域内计算平方根
realmax最大正浮点数
realmin最小正浮点数
rectangle画"长方框"
rem求余数
repmat铺放模块数组
reshape改变数组维数、大小
residue部分分式展开
return返回
ribbon把二维曲线画成三维彩带图
rmfield删去构架的域
roots求多项式的根
rose数扇形图
rot90矩阵旋转90度
rotate指定的原点和方向旋转
rotate3d启动三维图形视角的交互设置功能
round向最近整数圆整
rref简化矩阵为梯形形式
rsf2csf实数块对角阵转为复数特征值对角阵
rsums Riemann和S s
save把内存变量保存为文件
scatter散点图
scatter3三维散点图
sec正割
sech双曲正割
semilogx X轴对数刻度坐标图
semilogy Y轴对数刻度坐标图
series串联连接
set设置图形对象属性
setfield设置构架数组的域
setstr将ASCII码转换为字符的旧版指令
sign根据符号取值函数
signum符号计算中的符号取值函数
sim运行SIMULINK模型
simget获取SIMULINK模型设置的仿真参数
simple寻找最短形式的符号解
simplify符号计算中进行简化操作
simset对SIMULINK模型的仿真参数进行设置
simulink启动SIMULINK模块库浏览器
sin正弦
sinh双曲正弦
size矩阵的大小
matlab怎么导入tab文件
在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件。MATLAB使用多种格式打开和保存数据。本章将要介绍 MATLAB中文件的读写和数据的导入导出。
13.1数据基本操作
本节介绍基本的数据操作,包括工作区的保存、导入和文件打开。
13.1.1文件的存储
MATLAB支持工作区的保存。用户可以将工作区或工作区中的变量以文件的形式保存,以备在需要时再次导入。保存工作区可以通过菜单进行,也可以通过命令窗口进行。
1.保存整个工作区
选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件。
2.保存工作区中的变量
在工作区浏览器中,右击需要保存的变量名,选择Save As…,将该变量保存为MAT文件。
3.利用save命令保存
该命令可以保存工作区,或工作区中任何指定文件。该命令的调用格式如下:
● save:将工作区中的所有变量保存在当前工作区中的文件中,文件名为 matlab.mat,MAT文件可以通过load函数再次导入工作区,MAT函数可以被不同的机器导入,甚至可以通过其他的程序调用。
● save('filename'):将工作区中的所有变量保存为文件,文件名由filename指定。如果filename中包含路径,则将文件保存在相应目录下,否则默认路径为当前路径。
● save('filename','var1','var2',...):保存指定的变量在 filename指定的文件中。
● save('filename','-struct','s'):保存结构体s中全部域作为单独的变量。
● save('filename','-struct','s','f1','f2',...):保存结构体s中的指定变量。
● save('-regexp', expr1, expr2,...):通过正则表达式指定待保存的变量需满足的条件。
● save('...,'format'),指定保存文件的格式,格式可以为MAT文件、ASCII文件等。
13.1.2数据导入
MATLAB中导入数据通常由函数load实现,该函数的用法如下:
● load:如果matlab.mat文件存在,导入matlab.mat中的所有变量,如果不存在,则返回error。
● load filename:将filename中的全部变量导入到工作区中。
● load filename X Y Z...:将filename中的变量X、Y、Z等导入到工作区中,如果是MAT文件,在指定变量时可以使用通配符“*”。
● load filename-regexp expr1 expr2...:通过正则表达式指定需要导入的变量。
● load-ascii filename:无论输入文件名是否包含有扩展名,将其以ASCII格式导入;如果指定的文件不是数字文本,则返回error。
● load-mat filename:无论输入文件名是否包含有扩展名,将其以mat格式导入;如果指定的文件不是MAT文件,则返回error。
例13-1将文件matlab.map中的变量导入到工作区中。
首先应用命令whos–file查看该文件中的内容:
>> whos-file matlab.mat
Name Size Bytes Class
A 2x3 48 double array
I_q 415x552x3 687240 uint8 array
ans 1x3 24 double array
num_of_cluster 1x1 8 double array
Grand total is 687250 elements using 687320 bytes
将该文件中的变量导入到工作区中:
>> load matlab.mat
该命令执行后,可以在工作区浏览器中看见这些变量,如图13-1所示。
图13-1导入变量后的工作区视图
接下来用户可以访问这些变量。
>> num_of_cluster
num_of_cluster=
3
MATLAB中,另一个导入数据的常用函数为importdata,该函数的用法如下:
● importdata('filename'),将filename中的数据导入到工作区中;
● A= importdata('filename'),将filename中的数据导入到工作区中,并保存为变量A;
● importdata('filename','delimiter'),将filename中的数据导入到工作区中,以delimiter指定的符号作为分隔符;
例13-2从文件中导入数据。
>> imported_data= importdata('matlab.mat')
imported_data=
ans: [1.1813 1.0928 1.6534]
A: [2x3 double]
I_q: [415x552x3 uint8]
num_of_cluster: 3
与load函数不同,importdata将文件中的数据以结构体的方式导入到工作区中。
13.1.3文件的打开
MATLAB中可以使用open命令打开各种格式的文件,MATLAB自动根据文件的扩展名选择相应的编辑器。
需要注意的是open('filename.mat')和load('filename.mat')的不同,前者将filename.mat以结构体的方式打开在工作区中,后者将文件中的变量导入到工作区中,如果需要访问其中的内容,需要以不同的格式进行。
例13-3 open与load的比较。
>> clear
>> A= magic(3);
>> B= rand(3);
>> save
Saving to: matlab.mat
>> clear
>> load('matlab.mat')
>> A
A=
8 1 6
3 5 7
4 9 2
>> B
B=
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
>> clear
>> open('matlab.mat')
ans=
A: [3x3 double]
B: [3x3 double]
>> struc1=ans;
>> struc1.A
ans=
8 1 6
3 5 7
4 9 2
>> struc1.B
ans=
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
13.2文本文件的读写
在上一节中介绍的函数和命令主要用于读写mat文件,而在应用中,需要读写更多格式的文件,如文本文件、word文件、xml文件、xls文件、图像文件和音视频文件等。本节介绍文本文件(txt)的读写。其他文件的读写,用户可以参考MATLAB帮助文档。
MATLAB中实现文本文件读写的函数如表13-1所示。
表13-1 MATLAB中文本文件读写函数
函数功能
csvread读入以逗号分隔的数据
csvwrite将数据写入文件,数据间以逗号分隔
dlmread将以 ASCII码分隔的数值数据读入到矩阵中
dlmwrite将矩阵数据写入到文件中,以 ASCII分隔
textread从文本文件中读入数据,将结果分别保存
textscan从文本文件中读入数据,将结果保存为单元数组
下面详细介绍这些函数。
1. csvread、csvwrite
csvread函数的调用格式如下:
● M= csvread('filename'),将文件filename中的数据读入,并且保存为M,filename中只能包含数字,并且数字之间以逗号分隔。M是一个数组,行数与filename的行数相同,列数为filename列的最大值,对于元素不足的行,以0补充。
● M= csvread('filename', row, col),读取文件filename中的数据,起始行为row,起始列为col,需要注意的是,此时的行列从0开始。
● M= csvread('filename', row, col, range),读取文件filename中的数据,起始行为 row,起始列为col,读取的数据由数组 range指定,range的格式为:[R1 C1 R2 C2],其中R1、C1为读取区域左上角的行和列,R2、C2为读取区域右下角的行和列。
csvwrite函数的调用格式如下:
● csvwrite('filename',M),将数组M中的数据保存为文件filename,数据间以逗号分隔。
● csvwrite('filename',M,row,col),将数组M中的指定数据保存在文件中,数据由参数 row和col指定,保存row和col右下角的数据。
● csvwrite写入数据时每一行以换行符结束。另外,该函数不返回任何值。
这两个函数的应用见下面的例子。
例13-4函数csvread和csvwrite的应用。
本例首先将MATLAB的图标转化为灰度图,将数据存储在文本文件中,再将其部分读出,显示为图形。
编写M文件,命名为immatlab.m,内容为:
% the example of functions csvread and csvwrite
I_MATLAB= imread('D:\matlab.bmp');% read in the image
I_MATLAB= rgb2gray(I_matlab);% convert the image to gray image
figure,imshow(I_matlab,'InitialMagnification',100);% show the image
csvwrite('D:\matlab.txt',I_matlab);% write the data into a text file
sub_MATLAB= csvread('D:\matlab.txt',100,100);% read in part of the data
sub_MATLAB= uint8(sub_matlab);% convert the data to uint8
figure,imshow(sub_matlab,'InitialMagnification',100);% show the new image
在命令窗口中运行该脚本,输出图形如图13-2所示。
(a)(b)
图13-2例13-3的运行结果
该例中涉及到了少量的图像处理内容,超出本书的范围,感兴趣的读者可以查阅 MATLAB帮助文档中关于Image Processing Toolbox的介绍。
2. dlmread、dlmwrite(个人觉得这个比较好用)
dlmread函数用于从文档中读入数据,其功能强于csvread。dlmread的调用格式如下:
● M= dlmread('filename')
● M= dlmread('filename', delimiter)
● M= dlmread('filename', delimiter, R, C)
● M= dlmread('filename', delimiter, range)
其中参数delimiter用于指定文件中的分隔符,其他参数的意义与csvread函数中参数的意义相同,这里不再赘述。dlmread函数与csvread函数的差别在于,dlmread函数在读入数据时可以指定分隔符,不指定时默认分隔符为逗号。
dlmwrite函数用于向文档中写入数据,其功能强于csvwrite函数。dlmwrite函数的调用格式为:
● dlmwrite('filename', M),将矩阵M的数据写入文件filename中,以逗号分隔。
● dlmwrite('filename', M,'D'),将矩阵M的数据写入文件filename中,采用指定的分隔符分隔数据,如果需要tab键,可以用“\t”指定。
● dlmwrite('filename', M,'D', R, C),指定写入数据的起始位置。
● dlmwrite('filename', M, attribute1, value1, attribute2, value2,...),指定任意数目的参数,可以指定的参数见下表。
● dlmwrite('filename', M,'-append'),如果filename指定的文件存在,在文件后面写入数据,不指定时则覆盖原文件。
● dlmwrite('filename', M,'-append', attribute-value list),叙写文件,并指定参数。
● dlmwrite函数的可用参数如表13-2所示。
表13-2 dlmwrite函数的可用参数
参数名功能
delimiter用于指定分隔符
newline用于指定换行符,可以选择“pc”或者“unix”
roffset行偏差,指定文件第一行的位置,roffset的基数为 0
coffset列偏差,指定文件第一列的位置,coffset的基数为 0
precision指定精确度,可以指定精确维数,或者采用 c语言的格式,如“.5f”
3. textread,textscan
当文件的格式已知时,可以利用textread函数和textscan函数读入。这里只介绍这两个函数应用的实例。
例13-5通过%读入文件,按照原有格式读取。
文件的内容为:
Sally Level1 12.34 45 Yes
在命令窗口中输入:
>> [names, types, x, y, answer]= textread('D:\mat.txt','%s%s%f%d%s', 1)
得到结果为:
names=
'Sally'
types=
'Level1'
x=
12.3400
y=
45
answer=
'Yes'
例13-6函数csvread和csvwrite的应用
Sally Level1 12.34 45 1.23e10 inf NaN Yes
Joe Level2 23.54 60 9e19-inf 0.001 No
Bill Level3 34.90 12 2e5 10 100 No
>> fid= fopen('D:\mat.txt');
>> C= textscan(fid,'%s%s%f%u%f%f%s');
>> fclose(fid);
13.3低级文件I/O
本节介绍一些基本的文件操作,这些操作如表13-3所示。
表13-3 MATLAB的基本文件操作
函数功能
fclose关闭打开的文件
feof判断是否为文件结尾
ferror文件输入输出中的错误查找
fgetl读入一行,忽略换行符
fgets读入一行,直到换行符
fopen打开文件,或者获取打开文件的信息
fprintf格式化输入数据到文件
fread从文件中读取二进制数据
frewind将文件的位置指针移至文件开头位置
fscanf格式化读入
fseek设置文件位置指针
ftell文件位置指针
fwrite向文件中写入数据
下面重点介绍函数fprintf。该函数的调用格式如下:
count= fprintf(fid, format, A,...),该语句将矩阵A及后面其他参数中数字的实部以 format指定的格式写入到fid指定的文件中,返回写入数据的字节数。
上面语句中,参数format由%开头,共可由4个部分组成,分别如下:
●标记(flag),为可选部分。
●宽度和精度指示,为可选部分。
●类型标志符,为可选部分。
●转换字符,为必需部分。
1.标记
标记用于控制输出的对齐方式,可以选择的内容如表13-4所示。
表13-4标记的可选内容
函数功能示例
负号(-)在参数左侧进行判别%-5.2d
加号(+)在数字前添加符号%+5.2d
空格在数字前插入空格% 5.2d
0在数字前插入0.2d
2.宽度和精度指示
用户可以通过数字指定输出数字的宽度及精度,格式如下:
● o,指定数字的宽度;
●%6.2f,指定数字的宽度及精度;
●%.2f,指定数字的精度。
例13-6 fprintf函数宽度和精度指示符示例。
在命令窗口中输入如下命令:
>> file_type= fopen('D:\type.txt','w');
>> fprintf(file_h,'%6.2f.8f\n', 1.2,-43.3);
>> fprintf(file_h,'o f\n', 1.2,-43.3);
>> fprintf(file_h,'%.2f%.8f\n', 1.2,-43.3);
>> fclose(file_h)
ans=
0
打开该文件,其内容为:
1.20-43.30000000
1.200000-43.300000
1.20-43.30000000
从上述结果可以看出宽度和精度控制的效果。
3.转换字符
转换字符用于指定输出的符号,可以选择的内容如表13-5所示。
表13-5格式化输出的标志符及意义
标志符意义
%c输出单个字符
%d输出有符号十进制数
%e采用指数格式输出,采用小写字母 e,如:3.1415e+00
%E采用指数格式输出,采用大写字母 E,如:3.1415E+00
%f以定点数的格式输出
%g%e及%f的更紧凑的格式,不显示数字中无效的 0
%G与%g相同,但是使用大写字母E
%i有符号十进制数
%o无符号八进制数
%s输出字符串
%u无符号十进制数
%x十六进制数(使用小写字母a-f)
%X十六进制数(使用大写字母A-F)
其中%o、%u、%x、%X支持使用子类型,具体情况这里不再赘述。格式化输出标志符的效果见下面的例子。
例13-7 fprintf格式化输出示例。
>> x= 0:.1:1;
>> y= [x; exp(x)];
>> fid= fopen('exp.txt','wt');
>> fprintf(fid,'%6.2f.8f\n', y);
>> fclose(fid)
ans=
0
显示该文件:
>> type exp.txt
0.00 1.00000000
0.10 1.10517092
…
0.90 2.45960311
1.00 2.71828183
例13-9利用 fprintf函数在显示器上输出字符串
>> fprintf(1,'It''s Friday.\n')
It's Friday.
在该例中,利用1表示显示器,并且用两个单引号显示单引号,使用\n进行换行。在格式化输出中,这类符号称为转义符。MATLAB中的常用转义符如表13-6所示。
表13-6 MATLAB中的常用转义符
转义符功能
\b退格
\f表格填充
\n换行符
\r回车
\ttab
\\反斜线
\''或''单引号
%%百分号
13.4利用界面工具导入数据
除前面几节介绍的函数外,也可以通过界面工具将数据导入到工作区中。本节介绍利用工作区浏览器中的工具导入数据。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!