首页技术matlab中fread函数的用法(matlab 函数的分类)

matlab中fread函数的用法(matlab 函数的分类)

编程之家2026-06-15996次浏览

各位老铁们,大家好,今天由我来为大家分享matlab中fread函数的用法,以及matlab 函数的分类的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

matlab中fread函数的用法(matlab 函数的分类)

matlab 中关于fread函数的用法

fread函数在MATLAB中的功能:fread函数可从文件中读取二进制数据

用法:

A= fread(fid, count)

A= fread(fid, count, precision)

其中fid为指针所指文件中的当前位置,count指读取的数据个数, precision表示以什么格式的数据类型读取数据。

扩展资料:

matlab中fread函数的用法(matlab 函数的分类)

fread函数在PHP中:

(PHP 4, PHP 5)

fread:读取文件(可安全用于二进制文件)

stringfread( int handle, int length)

fread()从文件指针handle读取最多 length个字节。该函数在读取完 length个字节数,或到达 EOF的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。

在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen()函数的 mode参数要加上'b'。

matlab中fread函数的用法(matlab 函数的分类)

当从网络流或者管道读取时,例如在读取从远程文件或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利用界面工具导入数据

除前面几节介绍的函数外,也可以通过界面工具将数据导入到工作区中。本节介绍利用工作区浏览器中的工具导入数据。

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

wpf控件大全 winform控件大全wow改字体(wow宏命令大全手册)