matlab基础textread函数实例
matlab的函数类型

matlab的函数类型作者:XLFinance 来源:XLFinance 打印邮寄返回匿名函数匿名函数的作用在于可以快速生成简单的函数,而不需创建m文件,匿名函数通常在命令区或函数、脚本中运行时创建。
匿名函数的生成语法是fhandle = @(arglist) expr,其中expr代表函数体,arglist是逗号分隔的参数列表。
符号@代表创建函数句柄,匿名函数必须使用此符号,匿名函数的执行语法是:fhandle(arg1, arg2, ..., argN),fhandle为匿名函数句柄名称。
简单的匿名函数示例:sqr = @(x) x.^2,该匿名函数计算给定参数x的平方值,执行可以使用 a = sqr(5)形式。
再如:sumAxBy = @(x, y) (A*x + B*y)(使用多个参数),t = @() datestr(now)(无参数),A = {@(x)x.^2, @(y)y+10, @(x,y)x.^2+y+10}(匿名函数数组)。
多重匿名函数等同于:g = @(c) (quad(@(x) (x.^2 + c*x + 1), 0, 1));其中@(x) (x.^2 + c*x + 1)为第一重匿名函数,而后作为参数继续传递给积分函数。
再如求解函数a*exp(x)+b*x=0,则使用在m函数文件调用匿名函数:function f0 = test(a, b, x0)f0=fsolve(@(x)(a*exp(x)+b*x),x0);主函数任意m文件中的第一个函数称呼为主函数,主函数之后可能附随多个子函数。
主函数是在命令区或其它函数中可调用的唯一一个该m文件中所定义的函数。
子函数一个m文件中可能包含多个函数。
主函数之外的函数都称为子函数,这些子函数只能为主函数或同一m文件中的其它子函数可见。
例如:function [avg, med] = newstats(u) % 主函数n = length(u);avg = mean(u, n);med = median(u, n);function a = mean(v, n) % 子函数1a = sum(v)/n;function m = median(v, n) % 子函数2w = sort(v);if rem(n, 2) == 1m = w((n+1) / 2);elsem = (w(n/2) + w(n/2+1)) / 2;end而即便在相同m文件中,子函数内定义的变量也不可为其它子函数所使用,除非定义为全局或作为参数传递。
matlab常用命令

matlab常用命令1.Patch [1,1,1]表示白色;2.潮汐椭圆:ECC为短轴与长轴的比率;负值表示椭圆逆时针旋转; INC表示东方向与主轴的夹角,PHA表示与最小流时间有关.3.textread (%n)表示读入数据,并转换为双精度数据.4.[x,y]=ginput(2);[lon,lat]=m_xy2ll(x,y)以上命令表示在地图上任意点两点,返回该点的经纬度值。
5.matlab保存图像:print(土星句柄,存储格式,文件名)png格式-png 推荐一种,与bmp一样清晰;jpeg:-djpeg 文件小,较清晰;tiff:-dtiffbmp -dbitmap 清晰,文件大gif -dgif 文件小,不清晰A aabs 绝对值、模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 bbar 二维直方图bar3 三维直方图bar3h 三维水平直方图barh 二维水平直方图base2dec X进制转换为十进制bin2dec 二进制转换为十进制blanks 创建空格串bone 蓝色调黑白色图阵box 框状坐标轴break while 或for 环中断指令brighten 亮度控制C ccapture (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 ddblquad 二重数值积分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 eecho 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 ffactor 符号计算的因式分解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 ggamma 函数gammainc 不完全函数gammaln 函数的对数gca 获得当前轴句柄gcbo 获得正执行"回调"的对象句柄gcf 获得当前图对象句柄gco 获得当前对象句柄geomean 几何平均值get 获知对象属性getfield 获知构架数组的域getframe 获取影片的帧画面ginput 从图形窗获取数据global 定义全局变量gplot 依图论法则画图gradient 近似梯度gray 黑白灰度grid 画分格线griddata 规则化数据和曲面拟合gtext 由鼠标放置注释文字guide 启动图形用户界面交互设计工具H hharmmean 调和平均值help 在线帮助helpwin 交互式在线帮助helpdesk 打开超文本形式用户指南hex2dec 十六进制转换为十进制hex2num 十六进制转换为浮点数hidden 透视和消隐开关hilb Hilbert矩阵hist 频数计算或频数直方图histc 端点定位频数直方图histfit 带正态拟合的频数直方图hold 当前图上重画的切换开关horner 分解成嵌套形式hot 黑红黄白色图hsv 饱和色图I iif-else-elseif 条件分支结构ifft 离散Fourier反变换ifft2 二维离散Fourier反变换ifftn 高维离散Fourier反变换ifftshift 直流分量对中的谱的反操作ifourier Fourier反变换i, j 缺省的"虚单元"变量ilaplace Laplace反变换imag 复数虚部image 显示图象imagesc 显示亮度图象imfinfo 获取图形文件信息imread 从文件读取图象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 kjacobian 符号计算中求Jacobian 矩阵jet 蓝头红尾饱和色jordan 符号计算中获得Jordan标准型keyboard 键盘获得控制权kron Kronecker乘法规则产生的数组L llaplace 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 mmad 平均绝对值偏差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 nndims 求数组维数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 oode1 非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 ppack 收集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 qquad 低阶法计算数值积分quad8 高阶法计算数值积分(QUADL)quit 推出Matlab 环境quiver 二维方向箭头图quiver3 三维方向箭头图R rrand 产生均匀分布随机数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 ssave 把内存变量保存为文件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 矩阵的大小slice 立体切片图solve 求代数方程的符号解spalloc 为非零元素配置内存sparse 创建稀疏矩阵spconvert 把外部数据转换为稀疏矩阵spdiags 稀疏对角阵spfun 求非零元素的函数值sph2cart 球坐标变为直角坐标sphere 产生球面spinmap 色图彩色的周期变化spline 样条插值spones 用1置换非零元素sprandsym 稀疏随机对称阵sprank 结构秩spring 紫黄调春色图sprintf 把格式数据写成串spy 画稀疏结构图sqrt 平方根sqrtm 方根矩阵squeeze 删去大小为1的"孤维"sscanf 按指定格式读串stairs 阶梯图std 标准差stem 二维杆图step 阶跃响应指令str2double 串转换为双精度值str2mat 创建多行串数组str2num 串转换为数strcat 接成长串strcmp 串比较strjust 串对齐strmatch 搜索指定串strncmp 串中前若干字符比较strrep 串替换strtok 寻找第一间隔符前的内容struct 创建构架数组struct2cell 把构架转换为元胞数组strvcat 创建多行串数组sub2ind 多下标转换为单下标subexpr 通过子表达式重写符号对象subplot 创建子图subs 符号计算中的符号变量置换subspace 两子空间夹角sum 元素和summer 绿黄调夏色图superiorto 设定优先级surf 三维着色表面图surface 创建面对象surfc 带等位线的表面图surfl 带光照的三维表面图surfnorm 空间表面的法线svd 奇异值分解svds 求指定的若干奇异值switch-case-otherwise 多分支结构sym2poly 符号多项式转变为双精度多项式系数向量symmmd 对称最小度排序symrcm 反向Cuthill-McKee排序syms 创建多个符号对象T ttan 正切tanh 双曲正切taylortool 进行Taylor逼近分析的交互界面text 文字注释tf 创建传递函数对象tic 启动计时器title 图名toc 关闭计时器trapz 梯形法数值积分treelayout 展开树、林treeplot 画树图tril 下三角阵trim 求系统平衡点trimesh 不规则格点网线图trisurf 不规则格点表面图triu 上三角阵try-catch 控制流中的Try-catch结构type 显示M文件U uuicontextmenu 创建现场菜单uicontrol 创建用户控件uimenu 创建用户菜单unmkpp 逐段多项式数据的反明晰化unwrap 自然态相角upper 转换为大写字母V vvar 方差varargin 变长度输入宗量varargout 变长度输出宗量vectorize 使串表达式或内联函数适于数组运算ver 版本信息的获取view 三维图形的视角控制voronoi Voronoi多边形vpa 任意精度(符号类)数值W wwarning 显示警告信息what 列出当前目录上的文件whatsnew 显示Matlab中Readme文件的内容which 确定函数、文件的位置while 控制流中的While环结构white 全白色图矩阵whitebg 指定轴的背景色who 列出内存中的变量名whos 列出内存中变量的详细信息winter 蓝绿调冬色图workspace 启动内存浏览器X x , Y y , Z zxlabel X轴名xor 或非逻辑yesinput 智能输入指令ylabel Y轴名zeros 全零数组zlabel Z轴名zoom 图形的变焦放大和缩小ztrans 符号计算Z变换。
MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)(转自matlab技术论坛)

MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)(转自matlab技术论坛)振动论坛原版主eight的经典贴MATLAB对于文本文件(txt)进行数据读取的技巧总结(经典中的经典)由于本帖内容较多,部分转自他人的心得,因此,凡转贴的地方仅用“----转----”标注,原作者略去,在此对所有原作者表示感谢!特别说明:由于大家在 I/O 存取上以 txt 文件为主,且读取比存储更麻烦(存储的话 fwrite, fprintf 基本够用),因此下面的讨论主要集中在“txt 文件的读取”上。
除了标注了“转”之外,其余心得均出于本人经验之结果,欢迎大家指正、补充。
一. 基本知识:--------------------------------------------------转----------------------------------------------------1. 二进制文件与文本文件的区别:将文件看作是由一个一个字节(byte) 组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。
这就是两者的区别;接着,第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。
如果按照文本方式打开,在打开的时候会进行translate,将每个字节转换成ASCII码,而以按照二进制方式打开的话,则不会进行任何的translate;最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。
譬如,你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二进制文件进行编辑了。
常用matlab语句

setxor:集合异或(不在交集中的元素)
union:两个集合的并
unique:返回向量作为一个集合所有元素(去掉相同元素)
14、代数式因式分解,展开,极限,倒数,级数求和,泰勒级数展开
>>syms x y a b c t
>>E1 = expand((x-2)*(x-4)*(y-t))//因式展开
3、将向量坐标在matlab里作图:
x=xlsread('C:\Documents and Settings\Administrator\桌面\school\GIS\新建Microsoft Excel工作表.xls',1,'A1:a1000');
y=xlsread('C:\Documents and Settings\Administrator\桌面\school\GIS\新建Microsoft Excel工作表.xls',1,'b1:b1000');
2 3 4 6 7 8
2 3 5 6 7 8
2 4 5 6 7 8
3 4 5 6 7 8
19、设n个人中每个人的生日在一年365天中任一天是等可能的。 求当n为23,40,64时,这n个人中至少有两人生日相同的概率各为多少?
>> n=23;
>> p=1-nchoosek(365,n)*factorial(n)/365^n
Title(‘plot of sin(x)/x’);
Grid on;
fplot与ezplot相类似,但更加精确。前两个参数与函数ezplot中的相同,但是数fplot还有其他优点
1.函数fplot是适应性的,它意味着在自变量范围内函数突然变化显示更多的点。
matlab数据的读入和写出

数据的读入和写出
Load save fopen fclose textread textscan dlmread Importdata fread fprintf
2011.08.15 16:15:17 +08'00'
Dlmwrite xlsread xlswrite.............基本够用了
有关于 format 的表格 见文档最后 表格二
有关于 fprintf 的一些讲解。用好了 会很有用处 不过 一般我们都是吧数据处理好了然后再进行存储 而且 在建模过程中 一般用到的是数据的存储 fprintf 最强大的功能是字符串的一些处理输出 而且需要记住很多 format 一般来说,学过 C C++推荐用 fprintf
有关于 format 的表格见最后的表格一 关于 textread 的 4 个例子在附录三
Textscan:
Textscan 是 textread 的升级版本 用法类似 只不过更高级,用法也更麻烦。 语法
C = textscan(fid, 'format') C = textscan(fid, 'format', N) C = textscan(fid, 'format', 'param', value) C = textscan(fid, 'format', N, 'param', value) 在阅读 textscan 文件,您必须打开 fopen 函数文件。fopen 由 textscan 要求。当您完成从文 件中读取,关闭 FID 检测器 通过调用 fclose(文件)。 C = textscan(fid, 'format') 从打开的文本 读取数据 到单元格 数组 C fid 的文件标识符 识别文件的格式 输入是一个 字符串的转换说明符 中单引号括起来。该说明符的数目决定了 CELL 的数目阵列 C C = textscan(fid, 'format', N) 从文件中读取数据,使用的格式 N 次,其中 n 是一个正整数。要读取 N 个周期后文件的其 他数据,调用 textscan 再次使用原来的 fid。 C = textscan(fid, 'format', 'param', value) 接受一个或多个以逗号分隔/值对参数的名称。有关所有有效的参数字符串列表,价值描述, 默认值,请参阅用户可配置选项。 C = textscan(fid, 'format', N, 'param', value) 从文件中读取数据,使用的格式 N 次,并使用由'param'和 value 值参数对指定的设置。
关于matlab中textread

关于matlab中textread/s/blog_9e67285801010bju.html 今天打算跑下程序,突然发现,真的很烂,不会读入数据,简单的Iris.txt 一上午都没读进去,在此对matlab中的textread函数做下总结,textscan函数待续。
本文主要内容引自/administer/872894.html笔者在此基础上进行运行,修改得到以下内容,希望大家给与补充:textread基本语法是:[A,B,C,…] = textread(filename,format)[A,B,C,…] = textread(filename,format,N)其中filename就是文件名,format就是要读取的格式,A,B,C就是从文件中读取到的数据。
必须严格遵守用法不可出现data=textread(filename,format,N)的形式其中括号里面变量的个数必须和format中定义的个数相同。
如果每N行相同格式的数据,可采用[A,B,C,…] = textread(filename,format,N)的语法,读取N 次。
_____________________________________________________________________ 注:textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。
textread读取某个文件后,下次再用textread读取这个文件时,还是会从文件头开始读取。
_____________________________________________________________________ 例如:例1:无分隔符mytest.txt1 2 3 45 6 7 89 10 11 12读取:>>[data1,data2,data3,data4]=textread('mytest.txt','%n%n%n%n');>>data=[data1 data2 data3 data4]data =1 2 3 45 6 7 89 10 11 12或者,[data1,data2,data3,data4]=textread(filename,'%n%n%n%n',3);%注意3为读取次数,应该是行数....................................................................................例2:有分隔符(逗号,分号...)myfile.txt 中的内容如下:1, 2, 3, 45, 6, 7, 89, 10, 11, 12读取:>> [data1,data2,data3,data4]=textread('myfile.txt','%n%n%n%n','delimiter', ',')>> data=[data1 data2 data3 data4]data =1 2 3 45 6 7 89 10 11 12这里delimiter是指指出分隔符,读数据的时候会自动跳过分隔符。
MATLAB速查之 读txt数据

6.1.3 fscanf函数读出数据调用方式A = fscanf(fid, format)[A,count] = fscanf(fid, format, size)输入参数fid 同上format 同上size 决定读取多少数据其内容如下。
n表示将n个元素读入一个向量inf读取到文件结尾,结果是一个向量[m,n]读取的元素填满m行n列矩阵输出参数A 数据变量count 读取值的个数下面读出exp.txt文件。
>> fid = fopen('exp.txt', 'r'); % 'r'表示读取文件操作>> a = fscanf(fid, '%g %g', [2 inf]);>>fclose(fid)>> a = a'>> aa =0 1.00000.1000 1.10520.2000 1.22140.3000 1.34990.4000 1.49180.5000 1.64870.6000 1.82210.7000 2.01380.8000 2.22550.9000 2.45961.00002.71836.1.4 从文本文件中读入格式化数据1.textread函数读取文本文件MATLAB从文本文件中读取格式化的数据函数是textread。
调用方式[A,B,C,...] = textread('filename','format')[A,B,C,...] = textread('filename','format',N)[...] = textread(...,'param','value',...)输入参数'filename' 需要读取的数据文件'format' 每行各个数据格式N 读取数据时使用N次。
matlab数据导入和导出

matlab数据导入和导出1. Xlsread读入数据[a3, h_lukou] = xlsread('ex1.xls','sheet3'); %指定工作表中数据,表头和字符数据存入h_lukou [a, h_lukou] = xlsread('2011B-data.xls', 'lukou'); %指定工作表中数据,表头和字符数据存入h_lukou [a, h_lukou] = xlsread('2011B-data.xls', 'A2:C3'); %读取指定区域的数据[g = xlsread('2011B-data.xls', 'A2:C300') %读取指定区域的数据2.文本数据1)a=textread('b-lukou.txt'); %这种读取的信息自动分隔,可带格式读整个文件,例见B2011_fig.m2)textscanfr = fopen('b-lukou.txt ', 'r'); txt数据空格分隔g1 = textscan(fr, '%d %d %d %f \n'); %读一行中指定格式的内容,指针移到未读处g1 = textscan(fr, '%d %d %d %f \n',N); %同一格式重复读N 次,(包括P87例2.10好像不执行)fr = fopen('ex2.txt ', 'r'); txt数据’,’分隔g1 = textscan(fr, '%d %d %d %f \n','delimiter',',');textscan更适合读入大文件;textscan可以从文件的任何位置开始读入,而textread 只能从文件开头开始读入;textscan也可以从上一次textscan结束的位置开始读入,而textread不能;textscan只返回一个数组,而textread要返回多个数组;textscan提供更多转换读入数据的选择;textscan提供给用户更多的配置参数。
matlab读到文本结尾

matlab读到文本结尾
在MATLAB中,要读取文本文件直到结尾,你可以使用`fgetl`函数结合循环来实现。
首先,你需要打开文件并获取文件句柄,然后使用循环来逐行读取文件,直到到达文件结尾为止。
以下是一个简单的示例代码,演示了如何在MATLAB中读取文本文件直到结尾:
matlab.
fid = fopen('yourfile.txt', 'r'); % 打开文件。
tline = fgetl(fid); % 读取第一行。
while ischar(tline) % 检查是否读取到文件结尾。
% 在这里可以对每一行的内容进行处理。
disp(tline); % 例如,打印每一行的内容。
tline = fgetl(fid); % 读取下一行。
end.
fclose(fid); % 关闭文件。
在这个示例中,我们首先使用`fopen`函数打开文件,并获取文件句柄`fid`。
然后,我们使用`fgetl`函数读取文件的第一行,并进入一个`while`循环。
在循环中,我们首先检查是否读取到了文件结尾,如果没有,就对每一行的内容进行处理,这里我们简单地打印了每一行的内容。
然后我们使用`fgetl`函数读取下一行,直到到达文件结尾为止。
最后,我们使用`fclose`函数关闭文件。
这样,你就可以在MATLAB中读取文本文件直到结尾了。
希望这个示例能够帮到你。
Matlab中的数据处理

Matlab中的数据处理Matlab中的各种工具箱最主要是以矩阵或数组作为处理对象,因此首先必须将原始数据以矩阵形式加载到Matlab的工作空间,然后对矩阵进行相关操作。
第一部分数据输入在Matlab中创建一个矩阵可以有如下几种途径:一、在Matlab命令窗口直接输入矩阵例如:>> A=[1 3 0;2 4 3;-3 4 9]说明:矩阵或数组的标识符都是[ ],矩阵同一行之间的元素用空格或逗号分隔,不同行之间用分号或回车符分隔。
二、利用workspace(工作空间)创建或修改矩阵在工作空间中新建一个空矩阵,然后双击该矩阵名,可以像Office 中的Excel电子表格一样进行输入和编辑数据,也可以双击已经存在于工作空间中的变量名,对其进行修改编辑。
例如:>> B=[];三、采用复制、粘贴的方式构造矩阵对于存在于外部文件中的比较规范的数据(排列成矩阵形式),可以先将数据块复制到剪贴板上,然后在Matlab中粘贴到相应变量。
举例:1、将data01.xls中的数据粘贴到Matlab工作空间中的变量C 中。
2、将data02.txt中的数据输入到Matlab工作空间中的变量D中。
四、使用输入函数对于大量的数据,或者格式更加复杂的数据文件,以上方法就不太方便,此时针对不同格式的数据文件,可以采用相应的输入函数导入数据。
1、load函数装载Matlab格式的数据文件(.mat)和文本格式的定界符为空格的矩形文件。
例:载入文件“data02.txt”中的数据2、dlmread函数将带有定界字符的ASCII数字数据读入矩阵常用格式:M=dlmread(‘filename’) %Matlab 从文件格式中推断定界符,逗号是默认定界符。
M=dlmread(‘filename’,delimiter),指定定界符。
M=dlmread(‘filename’,delimiter,R,C),从矩形数据的左上角R行、C 列的位置开始读入。
编写MATLAB程序对.TXT文档进行读写

编写MATLAB程序对.TXT文档进行读写如何使用matlab 找到某文件夹下某类型的所有文件key 1:使用dos命令dir就可以找到所有的文件,而dir *.m就可以列出所有扩展名为.m的文件,因此,可以考虑使用dos命令来解决。
matlab中实现的命令如下[status,result] = dos('dir *.m');key 2: result是一个字符串,需要从中挑取出文件名来,用正则表达式是王道。
filelist=regexp(result,'\w*?\.m','match');返回的filelist就是包含所有.m文件名的元胞数组(cell array)。
为了通用性,改写成如下的函数形式:functionfilelist=somefilelist(dir,ext)% filelist=filelist=somefilelist(dir,ext)% pick up all files with extent name 'ext', and in the dictionary % specified as 'dir'% Exampe:filelist=somefilelist('c:\matlab','m');%authorZhangFujian.%email:**********************% Dec. 4, 2007if dir(length(dir))~='\' dir=[dir,'\']; end[status,result] = dos(['dir',dir,'*.',ext]);filelist=regexpi(result,['\w*?\.',ext],'match');如何编写MATLAB程序才能实现对.TXT 文档的读写呢? matlab文件操作文件操作是一种重要的输入输出方式,即从数据文件读取数据或将结果写入数据文件。
MATLAB中文本文件的读取技巧

MATLAB对于文本文件(txt)数据读取的技巧总结目录:1. 基本知识2. Matlab的I/O文件操作使用技巧和总结3. 具体例子分析4. 注意事项一. 基本知识:1. 二进制文件与文本文件的区别:将文件看作是由一个一个字节(byte) 组成的,那么文本文件中的每个字节的最高位都是0,也就是说文本文件使用了一个字节中的七位来表示所有的信息,而二进制文件则是将字节中的所有位都用上了。
这就是两者的区别;接着,第二个问题就是文件按照文本方式或者二进制方式打开,两者会有什么不同呢?其实不管是二进制文件也好,还是文本文件也好,都是一连串的0和1,但是打开方式不同,对于这些0和1的处理也就不同。
如果按照文本方式打开,在打开的时候会进行translate,将每个字节转换成ASCII 码,而以按照二进制方式打开的话,则不会进行任何的translate;最后就是文本文件和二进制文件在编辑的时候,使用的方式也是不同的。
譬如,你在记事本中进行文本编辑的时候,你进行编辑的最小单位是字节(byte);而对二进制文件进行编辑的话,最小单位则是位(bit),当然我们都不会直接通过手工的方式对二进制文件进行编辑了。
从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种:ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。
例如,数5678的存储形式为:ASCII码:00110101 00110110 00110111 00111000↓ ↓ ↓ ↓十进制码:5678共占用4个字节。
ASCII码文件可在屏幕上按字符显示,例如源程序文件就是ASCII文件,用DOS命令TYPE可显示文件的内容。
由于是按字符显示,因此能读懂文件内容。
二进制文件是按二进制的编码方式来存放文件的。
例如,数5678的存储形式为:0001011000101110 只占二个字节。
二进制文件虽然也可在屏幕上显示,但其内容无法读懂。
matlab基本教程8

matlab基本教程8第⼋章输⼊/输出函数 (3)8.1 函数textread (3)8.2 关于load和save命令的进⼀步说明 (4) 8.3 MATLAB⽂件过程简介 (5)8.4 ⽂件的打开与关闭 (6)8.4.1 fopen函数 (6)8.4.2 fclose函数 (8)8.5 ⼆进制I/O函数 (8)8.5.1 fwrite函数 (8)8.5.2 fread函数 (9)例8.1 读写⼆进制数据 (9)测试8.1 (11)8.6 格式化I/O函数 (11)8.6.1 fprint函数 (11)8.6.2 格式转换指定符的理解 (12)8.6.3 如何使⽤格式字符串 (14)例8.2 产⽣⼀个信息表 (15)8.6.4 fscanf函数 (16)8.6.5 fgetl函数 (17)8.7 格式化和⼆进制I/O函数的⽐较 (17)例8.3 格式化和⼆进制I/O⽂件的⽐较 (18)测试8.2 (20)8.8 ⽂件位置和状态函数 (21)8.8.1 exist函数 (21)例8.4 打开⼀个输出⽂件 (21)8.8.2 函数ferror (23)8.8.3 函数foef (23)8.9 函数uiimport (27)8.10 总结 (29)8.10.1 好的编程习惯总结 (29)8.10.2 MATLAB总结 (30)8.11 练习 (30)8.1 (30)8.2 (30)8.6 (31)8.7 (31)8.8 (31)8.9 (32)8.10 (32)8.11 (32)8.12 (32)8.13 (32)第⼋章输⼊/输出函数在第⼆章中,我们已经学到如何⽤load和save命令加载和保存MATLAB数据,以及如何使⽤fprintf函数格式化输出数据。
在本章中,我们将学习更多的关于MATLAB输⼊和输出的功能。
⾸先,我们将会学习函数textread,在maltab5。
3中它是⼀个⾮常有⽤的函数。
Matlab数据导入方法

Matlab数据导入方法在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件。
MATLAB使用多种格式打开和保存数据。
本章将要介绍 MATLAB中文件的读写和数据的导入导出。
13.1 数据基本操作本节介绍基本的数据操作,包括工作区的保存、导入和文件打开。
13.1.1 文件的存储MATLAB支持工作区的保存。
用户可以将工作区或工作区中的变量以文件的形式保存,以备在需要时再次导入。
保存工作区可以通过菜单进行,也可以通过命令窗口进行。
1. 保存整个工作区选择File菜单中的Save Workspace As…命令,或者单击工作区浏览器工具栏中的Save,可以将工作区中的变量保存为MAT文件。
2. 保存工作区中的变量在工作区浏览器中,右击需要保存的变量名,选择Save A s…,将该变量保存为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中的指定变量。
matlab中的数据导入和导出

Matlab文件和数据的导入与导出Matlab文件和数据的导入与导出在编写一个程序时,经常需要从外部读入数据,或者将程序运行的结果保存为文件。
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中的指定变量。
matlab基础操作

matlab基础操作MATLAB是一款十分强大的数学软件,被广泛应用于科学计算、工程设计、数据分析等领域。
下面是MATLAB基础操作的介绍,主要包括安装、启动、界面、命令行基本语法、常用工具箱、常用函数等方面。
一、安装与启动1. 安装:打开安装程序,按照提示进行安装即可。
注意需要先按照MATLAB支持的操作系统才能进行安装。
2. 启动:双击MATLAB图标或者在Windows菜单中找到MATLAB,点击打开即可。
二、界面介绍MATLAB提供了一个通用的用户界面,用户可以选择工具栏、脚本编辑器、命令历史记录、变量监视器、帮助文档等等。
下面是MATLAB界面的介绍。
1. 工具栏:提供MATLAB的一些基本工具,如文件的打开、保存、设置等等。
2. 脚本编辑器:可以打开和编辑MATLAB代码文件。
3. 命令历史记录:记录了用户在命令行窗口中输入的所有代码,方便用户查看和复制。
4. 变量监视器:可以用于监视和编辑工作区中的变量。
5. 帮助文档:提供了MATLAB的详细说明和例子,帮助用户快速掌握其操作方法。
三、命令行基本语法在MATLAB中,用户可以通过命令行输入代码来进行运算。
下面是MATLAB命令行基本语法的介绍。
1. 数值计算示例:a = 3;b = 4;c = a + b;d = a * b;e = a / b;2. 矩阵计算示例:A = [1 2; 3 4];B = [4 3; 2 1];C = A * B;3. 函数调用示例:sin(x)cos(x)exp(x)log(x)四、常用工具箱MATLAB提供了各种各样的工具箱,包含了从信号处理到图像处理、从优化到数据分析等各种数学处理工具箱。
下面是MATLAB常用的工具箱的介绍。
1. 信号处理工具箱:主要用于数字信号的滤波、频谱分析、时间序列数据的处理等操作。
2. 图像处理工具箱:主要用于图像处理、图像分析、图像增强、图像恢复等。
3. 优化工具箱:提供了各种优化算法,包括线性规划、非线性规划、约束优化等等。
第四章 Matlab数据处理

line=fgetl(fid) 读取一行字符,不包括行结束符号,如果遇到文件末尾, line的值设置为-1; line=fgets(fid),功能同fgetl,但是读取时包括行结束符
11
4.3.数据的标准化
1、数据类型的一致化处理
(1)极小型:对某个极小型数据指标x,
12
(2)中间型。对某个中间型指标x,则有: (3)区间型。对某个区间型指标x,则有:
第四章 Matlab数据处理
1
主要内容
4.1. 数据文件读写 4.2. Matlab中的输入输出函数 4.3. 数据的标准化
4.1. 数据文件读写
1、将工作区变量保存到文本文件中
save var1 var2 var3… -mat 默认保存的文件扩展名为.mat,如果保存的 数据需要跨平台处理,需要采用如下格式: save var1 var2 … -ascii 另外: save var1 var2 … -append 附加到已经存在的Mat文件中 dlmwrite(‘data3.txt’,b),可以将工作区变量保存到纯文本文件中。
6
如果需要忽略某些数据,只读取一部分,可以如下调用: [first,last, gpa]=textread(‘test.dat’,’%s %s %*s %f %*d %*s’)
2、Matlab中的文件处理函数
2.1 文件的打开与关闭函数 [fid,message]=fopen(),fid返回打开文件的文件ID,如果打开成功, message返回空串。permission是打开权限,可以是’r’ ‘r+’ ‘w’ ’w+’ ‘a’ ‘a+’ ‘W’ ‘A’,分别代表了对文件的读写追加等操作,可以和文本文件(t)或者二进 制文件(b)组合使用,如’rt’ ‘rt+’ ‘rb’等,format对应文件中数据的显示格式, 可以是n,l,a,b,s等。 status=fclose(fid) 关闭文件
Matlab学习系列-011.数据的读写、导入及导出

Matlab学习系列-011.数据的读写、导⼊及导出011. 数据的读写、导⼊及导出在编写⼀个程序时,经常需要从外部导⼊数据,或者将程序运⾏的结果保存为⽂件。
⼀、*.txt或*.dat数据的导⼊与导出1.load函数——数值数据(格式⼀致)导⼊注:load函数可以导⼊.mat⽂件,也可以导⼊变量Load(‘1.mat’,’y’)例1.‘examp01.txt’⽂件如下:1.6218e-005 6.0198e-005 4.5054e-005 8.2582e-005 1.0665e-005 8.6869e-0057.9428e-005 2.6297e-005 8.3821e-006 5.3834e-005 9.6190e-005 8.4436e-0063.1122e-005 6.5408e-005 2.2898e-005 9.9613e-0054.6342e-007 3.9978e-0055.2853e-0056.8921e-005 9.1334e-0057.8176e-006 7.7491e-005 2.5987e-0051.6565e-005 7.4815e-005 1.5238e-005 4.4268e-005 8.1730e-005 8.0007e-005代码:x1 = load('examp01.txt') ;% ⽤load函数载⼊⽂件examp01.txt中的数据x1 = load('examp01.txt', '-ascii');% ⽤-ascii选项强制以⽂本⽂件⽅式读取数据load('examp01.txt'); %载⼊数据给变量examp01运⾏结果:x1 = 1.0e-004 *0.1622 0.6020 0.4505 0.8258 0.1066 0.86870.7943 0.2630 0.0838 0.5383 0.9619 0.08440.3112 0.6541 0.2290 0.9961 0.0046 0.39980.5285 0.6892 0.9133 0.0782 0.7749 0.25990.1657 0.7481 0.1524 0.4427 0.8173 0.8001例2.‘examp02.txt’⽂件如下:9.5550 2.7027, 8.6014; 5.6154* 3.45320.9223 0.9284, 1.4644; 3.6703* 2.21345.5557 7.2288, 4.3811;6.4703* 4.78564.7271 9.9686, 6.1993; 9.6416* 0.6866代码:x1 = load('examp02.txt')% ⽤load函数载⼊⽂件examp02.txt中的数据x1 = load('examp02.txt', '-ascii');% ⽤-ascii选项强制以⽂本⽂件⽅式读取数据运⾏结果:x =9.5550 2.7027 8.6014 5.6154 3.45320.9223 0.9284 1.4644 3.6703 2.21345.5557 7.2288 4.38116.4703 4.78564.7271 9.9686 6.1993 9.6416 0.68662.dlmread函数——有统⼀分隔符的数值数据导⼊语法:M = dlmread(‘⽂件名’, ‘分隔符’,‘读取范围’)例3.(带标题⾏)‘examp03.txt’⽂件如下:这是2⾏头⽂件,你可以选择跳过,读取后⾯的数据。
matlab中textread函数详解

实际应用中经常要读取txt文件,这个时候就需要用到强大的textread函数。
它的基本语法是:[A,B,C,...] = textread(filename,format)[A,B,C,...] = textread(filename,format,N)其中filename就是文件名, format就是要读取的格式,A,B,C就是从文件中读取到的数据。
中括号里面变量的个数必须和format中定义的个数相同。
如果每N行相同格式的数据,可采用[A,B,C,...] = textread(filename,format,N)的语法,读取N次。
举例如下:例子1:myfile.txt 中的内容如下:1 2 3 45 6 7 89 10 11 12相应的语句为:filename = '.\myfile.txt';[data1,data2,data3,data4]=textread(filename,'%n%n%n%n');或者为filename = '.\myfile.txt';[data1,data2,data3,data4]=textread(filename,'%n%n%n%n',3);例子2:myfile.txt 中的内容如下:1, 2, 3, 45, 6, 7, 89, 10, 11, 12相应的语句为:filename = '.\myfile.txt';[data1,data2,data3,data4]=textread(filename,'%n%n%n%n','delimiter', ',');这里delimiter指出分隔符,读数据的时候会自动跳过分隔符。
例子3:myfile.txt 中的内容如下:% this a comment1, 2, 3, 45, 6, 7, 89, 10, 11, 12相应的语句为:filename = '.\myfile.txt';[data1,data2,data3,data4]=textread(filename,'%n%n%n%n','delimiter', ',','headerli nes', 1);这里告诉textread跳过一开始的1行,1可以替换为任意你要跳过的行数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实际应用中经常要读取txt文件,这个时候就需要用到强大的textread函数。
它的基本语法是:
[A,B,C,...] = textread(filename,format)
[A,B,C,...] = textread(filename,format,N)
其中filename就是文件名,format就是要读取的格式,A,B,C就是从文件中读取到的数据。
中括号里面变量的个数必须和format中定义的个数相同。
如果每N行相同格式的数据,可采用[A,B,C,...] = textread(filename,format,N)的语法,读取N次。
举例如下:
例子1:myfile.txt 中的内容如下:
1 2 3 4
5 6 7 8
9 10 11 12
相应的语句为:
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n');
或者为
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n',3);
例子2:myfile.txt 中的内容如下:
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
相应的语句为:
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n','delimiter', ',');
这里delimiter指出分隔符,读数据的时候会自动跳过分隔符。
例子3:myfile.txt 中的内容如下:
% this a comment
1, 2, 3, 4
5, 6, 7, 8
9, 10, 11, 12
相应的语句为:
filename = '.\myfile.txt';
[data1,data2,data3,data4]=textread(filename,'%n%n%n%n','delimiter', ',','headerlines', 1);
这里告诉textread跳过一开始的1行,1可以替换为任意你要跳过的行数。
例子4:myfile.txt 中的内容如下:
Sally Level1 12.34 45 Yes
相应语句为:
filename = '.\myfile.txt';
[names, types, x, y, answer] = textread(filename , '%s %s %f %d %s', 1)
4.1如果要忽略12.34这个浮点数。
[names, types, y, answer] = textread(filename , '%s %s %*f %d %s', 1)
%*f 告诉textread跳过一个浮点数。
4.2 如果要忽略Level,指读取后面的数字,
[names, levelnum, x, y, answer] = textread(filename , ... '%s Level%d %f %d %s', 1)
例子5:myfile.txt 中的内容如下
1,2,3,4,,6
7,8,9,,11,12
想用nan替代为空的部分。
语句如下:
data = textread('myfile.txt', 'delimiter', ',', 'emptyvalue', NaN);
例子6:myfile.txt 中的内容如下
Sally Type1 12.34 45 Yes
Joe Type2 23.54 60 No
Bill Type1 34.90 12 No
如果只想读第一列,其余的跳过
filename = '.\myfile.txt';
[names]=textread(filename,'%s%*[^\n]')
%[^...] - reads characters not matching characters between the brackets until first matching character
%[^\n] 就是一直读到行尾。
%*[^\n] 就是从当前直接跳到行尾。
可对比
[names,rest]=textread(filename,'%s%[^\n]')
例子7: myfile.txt 中的内容如下
Location;date;discharge
Lobith;1989-01-01;00:00;2801
Lobith;1989-01-02;00:00;2619
语法如下:
[Location,... % 1
yyyy ,... % 2a datestring year
mm ,... % 2b datestring month
dd ,... % 2c datestring day
HH ,... % 3a timestring hour
MM ,... % 3b timestring minute
discharge] = ...
textread(filename,'%s%f-%f-%f%f:%f%f',...
'headerlines',1,...
'delimiter' ,';');
注意:
textread不用先fopen那个文件,适用于格式统一的txt文件的一次性大批量读取。
textread 读取某个文件后,下次再用textread读取这个文件时,还是会从文件头开始读取。