为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

matlab主要函数

2017-09-20 6页 doc 143KB 35阅读

用户头像

is_281650

暂无简介

举报
matlab主要函数一:matlab读写文本文件(txt) Matlab与外部文件进行数据交换的函数,有Load、importdata、fopen等;实现txt文件读写的函数有cvsread、cvswrite、dlmread、dlmwrite、textread、textscan等,简单介绍如下。 1.1 Load函数: 特点:二进制格式的文件可以直接读取;但ASCII格式的文件,必须保证数据是整齐的(即每一行数据个数一致)。例如输入以下指令: a=magic(4);b=ones(2, 4)*6;c=[1 2 3 4]; save –ascii ...
matlab主要函数
一:matlab读写文本文件(txt) Matlab与外部文件进行数据交换的函数,有Load、importdata、fopen等;实现txt文件读写的函数有cvsread、cvswrite、dlmread、dlmwrite、textread、textscan等,简单介绍如下。 1.1 Load函数: 特点:二进制的文件可以直接读取;但ASCII格式的文件,必须保证数据是整齐的(即每一行数据个数一致)。例如输入以下指令: a=magic(4);b=ones(2, 4)*6;c=[1 2 3 4]; save –ascii mydata.text; load mydata. Text; mydata 输出结果: 1.2 Importdata函数: 特点:importdata命令可以导入长短不一的ASCII文件,且文件中既可包含字符串又可包含数值。 注:读取数值矩阵列数以文件中第一行数值的列数为标准。 用法: importdata('filename'),将filename中的数据导入到工作区中; A = importdata('filename'),将filename中的数据导入到工作区中,并保存为变量A; importdata('filename','delimiter'),将filename中的数据导入到工作区中,以delimiter指定的符号作为分隔符。 例如:新建txt文档,命名imp.txt,键入以下内容: This is a text Start 0 1 2 3 4 5 6 7 8 9 输出: 1.3 Fopen函数 特点:fopen打开一个文件并创建文件标识以供接下来的读写等操作。fopen命令本身不进行读操作,使用fscanf读取数据,根据需要对数据进行筛选编译。 用法: 打开文件fid=fopen(文件名,‘打开方式’) 关闭文件fclose(fid) 例如:新建一个txt文件名为imp.txt,键入以下内容: This is a text Start 0 1 2 3 4 5 6 7 8 9 输出: 1.4 其他读写函数 Matlab中实现文本文件读写的常用函数如表1-1所示: 表1-1 函数 功能 cvsread 读入以逗号分隔的数据 cvswrite 写入以逗号分隔的数据 dlmread 读入以ACSII码分隔的数据文件到矩阵中 dlmwrite 写入以ACSII码分隔的矩阵数据到文件中 textread 读入数据到txt文件中,结果分别保存 textscan 读入数据到txt文件中,结果保存为单元数组 详细用法请参考matlab-help文档。 二:matlab绘图 2.1 参数设置 Matlab绘图中用到的直线属性包括: LineStyle LineWidth Color MarkerType MarkerSize MarkerFaceColor MarkerEdgeColor 线型 线宽 颜色 标记点形状 标记点大小 标记点内部填充颜色 标记点边缘颜色 其中常用的线型、颜色和数据点标记符号如下: 线型 颜色 标记符合 -实线 b蓝色 .点 s方块 :虚线 g绿色 0圆圈 d菱形 -.点划线 r红色 x叉号 p五角星 --双划线 c青色 +加号 h角星 m品红 *星号 y黄色 k黑色 w白色 plot(x,sin(x),'r') plot(x,sin(x),'r:d') 2.2 绘图的辅助操作 1 图形标注 绘制图形时,可以对图形加上一些说明,如图形的名称、坐标轴说明以及图形某一部分解释,这些标注函数调用格式如下所示: title(‘图形名称’) xlable(‘x轴说明’) ylable(‘y轴说明’) text(x,y,‘图形说明’) legend(‘图例1’,‘图例2’,…) 2 坐标控制 绘制图形时,如果用户对坐标不满意,可以利用axis函数对其进行设定,其格式为: axis([xmin xmax ymin ymax zmin zmax]) 除此之外,常用的命令有: axis equal 坐标轴等长刻度 axis square 正方形坐标系 axis auto 默认设置 axis off 取消坐标轴 axis on 显示坐标轴 grid off 不画网格线 grid on 画网格线 box off 不加边框 box on 加边框 hold on 保持原样图形 hold off 刷新原有图形 3 图形窗口分割 Subplot(m,n,p)该函数把当前窗口分成mxn个绘图区,m行,n列,p为当前活动区,行优先原则。 2.3 二维绘制 在Matlab中,最基本且应用最广泛的绘制函数为plot。基本格式为: plot(x,y) 多组参数输入,绘制出多条曲线的格式: Plot(x1,y1,选项1,x2,y2,选项2,…,xn,yn) 其他函数有: 条形图 Bar 阶梯图 Stairs 杆图 Stem 填充图 Fill 极坐标图 Polar 对数坐标图 Semilogx Semilogy Loglog 双纵坐标函数 Plotyy 2.4 三维绘制 最基本的绘制三维曲线函数plot3。格式为: Plot(x1,y1,z1,选项1,x2,y2,z2,选项2,…) 其中每一组x,y,z组成一组曲线的坐标参数。当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵的列数。 其他函数有: 条形图 Bar3 阶梯图 Stairs3 杆图 Stem3 填充图 Fill3 三维网格图 Mesh 三维曲面图 Surf Sphere球面 Cylinder柱面 三维饼图 Pie3 具体用法参考Matlab-help文档。 三:matlab图片保存 3.1 saveas函数 saveas函数可以将指定figure中的图像或者simulink中的框图进行保存,相当于【文件】中的【另存为】。格式如下: saveas(图形句柄,‘文件名’)或者 saveas(图形句柄,‘文件名’,‘存储格式’) 例如: saveas(gcf,’filename’,’bmp’) saveas(gcf,’filename’,’emf’) saveas(gcf,’filename’,jpg’) 缺点:清晰度不够好。 3.2 print函数 print函数可以保存各种格式,指定图片大小、质量,还可保存矢量图。格式: print(图形句柄‘存储格式’,‘文件名’); 例如:print(gcf,‘-dpng’,‘filename.png’)保存为png图片。 其中: ● 第一个参数gcf获取当前窗口句柄; ● 第二个参数可以是: -dbmp:保存为bmp格式; -djpeg:保存为jpeg格式; -dpcx:保存为pcx格式; -dpdf:保存为pdf格式; -dtiff:保存为tiff格式。 ● 文件名,例如可写成‘C:\abcd.png’或‘abcd.png’ 3.3 imwrite函数 imwrite()函数常用来保存经过修改的图像,格式如下: imwrite(A,filename,fmt)或者 imwrite(X,map,filename,fmt) 例如: set(gcf,’color’,[1 1 1]);         %设置背景为白色 F=getframe(gcf);或F=getfra0me; %获取窗口图像 imwrite(F.cdata,‘abcd.jpg’)        %保存图像 四:安装和使用MCR MCR全名为Matlab Compiler Runtime。是一组独立的共享库。为执行编译过的Matlab文件,提供一个运行环境。 注:服务器A:安装了matlab编译环境; 服务器B:仅安装了MCR,未安装matlab编译环境。 首先在服务器A上,编译.m文件将其转换成可执行程序,然后将该执行程序上传至服务器B上直接运行,具体步骤如下: 4.1选择编译器 Matlab命令窗口输入指令: >>mex -setup 显示以下信息: 选择编译器:3 4.2编译M文件 创建一个简单的M文件,文件名为‘bb’,内容如下: clear all; clc; a=1985; b=a*3 输入指令: >>mcc –mv bb.m … 编译M文件,执行完生成如下目录 其中bb是编译后的二进制文件,run_bb.sh是一个bash脚本文件,该脚本首先会设置一些环境变量然后可直接运行可执行文件bb。 4.3安装、配置MCR 上面生成的可执行文件如果直接copy到没有matlab环境的服务器B上运行时会报错的,因为缺少了相应的库支持。将MCR安装文件与上述目录文件一起打包,拷贝到服务器B上,并在该服务器上安装MCR,安装完毕即可以直接运行编译的Matlab可执行程序。 MCR安装文件位于:media/matlab(Matlab安装目录)\toolbox\compiler\deploy\glnxa64\ 注:MCR必须和Matlab编译器版本一致才能正常运行。 安装成功之后,配置一些系统环境变量。 在/etc/profile文件的最后添加如下几行环境变量(如果安装的MCR版本不一样的话,路径会有不同) export MCR_HOME=/opt/MCR/MATLAB_Compiler_Runtime export LD_LIBRARY_PATH=$LD_LIBRARY_PATH: $MCR_HOME/v79/runtime/glnxa64:$MCR_HOME/v79/sys/os/glnxa64:$MCR_HOME/v79/sys/java/jre/glnxa64/jre/lib/amd64/native_threads: $MCR_HOME/v717/sys/java/jre/glnxa64/jre1.6.0/lib/amd64/server:$MCR_HOME/v717/sys/java/jre/glnxa64/jre1.6.0/lib/amd64 export XAPPLRESDIR=$MCR_HOME/v717/X11/app-defaults 然后执行下面的命令使之生效: source /etc/profile 4.4运行文件 在命令行输入指令直接运行Matlab程序 #$ su root #$/home/linux02/test/./run_bb.sh /opt/MCR/MATLAB_Compiler_Runtime/v79 MCR目前存在的问题: 1、Matlab(R2008b)自带的MCR安装文件,在32位linux操作系统上安装失败;提示如下: 2、在MCR环境下,只能运行脚本文件.sh。可执行程序运行失败(环境变量已配置成功),提示如下: 附件: 解决Matlab中文乱码 问题描述:Matlab中文显示小方块, 由于Linux下Matlab的图形界面是用Java写的,所以只要搞定Java的中文显示就行了,步骤如下: 1、Matlab2008b的JRE目录为:/media/matlab/sys/java/jre/glnxa64/jre根据自己的安装目录和版本确定JRE的目录; 2、$ cd /media/matlab/sys/java/jre/glnxa64/jre /lib/fonts/; 3、建立目录fallback: $ mkdir fallback; 4、把字体复制或链接到fallback目录: $ cp /home/linux02/simsun.ttc fallback/ (网上下载的simsun字体,也可以用别的支持中文的字体); 5、进入fallback目录,执行 mkfontscale 命令; 6、将上一步生成的文件添加到 lib/fonts/fonts.dir文件中,可用以下命令完成,也可以用编辑器复制粘贴。 $ cat fallback/fonts.scale >> fonts.dir (注意fonts.dir应该设为可写) 7、至此Matlab的Java环境中文支持安装完了,接下来配置Matlab; 8、进入Matlab,选择 菜单 File>>Preferences>>Fonts 选择SimSun字体就行了(这里在字体选择的下拉菜单中就会有“宋体”、“新宋体”、“宋体-PUA”的选择了,只要在“desktop code font”和“desktop text font”中设置成以上字体,并在“custom”中进行相关的设置即可); 9、如果没有相应的SimSun字体,把fallback下的字体加上可读属性:$ chmod a+r fallback/ 10、至此Matlab应该可以正常显示中文了。 五:关键函数记录 5.1 Linspace函数 Linspace(1,25,5)指将1到25平均成5个数。第三个参数无时默认100 5.2矩阵行列 Pv(1:5,1:6)=1 指五行六列均为1 Pv(:,5)=A ,将数组A赋值Pv的第5列 . Pv(5,:)=A ,将数组A赋值Pv的第5行 删除第5行为:Pv(5:,:)=[]; [m,n]=size(pv)获取矩阵pv的行列数。 5.3 Interp1函数 MATLAB中的插值函数为interp1,其调用格式为:  yi= interp1(x,y,xi,'method') 其中x,y为插值点,yi为在被插值点xi处的插值结果;x,y为向量, 'method'表示采用的插值方法,MATLAB提供的插值方法有几种: 'nearest'是最邻近插值, 'linear'线性插值; 'spline'三次样条插值; 'cubic'立方插值.缺省时表示线性插值 若此xx在你的x范围内,应当算是内插;否则为外插,必须加‘extrap’。例如:c=interp1(a,b,13,'linear','extrap' 5.4 数据含NaN的处理 目标:实现删除含NaN(not a number)的列: Isnan=isnan(data.data);//找出含NaN的位置,所有NaN位置为1. [x,y]=find(Isnan==1);//找出含NaN的行列 any(Isnan),仅对其行判断,若有非零取1,否则取0. data.data(:,y)=[];//删除其列 isnan(data.data)显示全部矩阵中为NaN的位置(1,否则0) sum(isnan(data.data))显示列NaN之和 sum(sum(isnan(data.data)))显示矩阵全部NaN之和。 5.5 matlab中fix函数,floor函数,ceil函数 1)fix(n)的意义是取小于n的整数(是向零点舍入的意思是往零的方向上靠),这是一类应用在整数取值上的函数,就如同以前我们所研究的求整问题,例如,fix(pi)=3;fix(3.5)=3;fix(-3.5)=-3;我这样举例的意思是说明这与四舍五入无关,就是纯粹的一种取值函数。下面讲到各类时我都会举例子,注意区分! 2)round(n)的意思是纯粹的四舍五入,意思与我们以前数学中的四舍五入是一样的!round(pi)=3;round(3.5)=4;round(-3.5)=-4;round(-3.1)=-3;这一点注意与fix所产生的不同,注意区分! 3)ceil(n)的意思是向正方向舍入,这一点要与floor(n)向负方向舍入一起讲,能够更好的区分 ceil(pi)=4; ceil(3.5)=4; ceil(-3.2)=-3;向正方向舍入 floor(pi)=3; floor(3.5)=3; floor(-3.2)=-4;向负方向舍入 5.6 matlab求导命令diff调用格式: diff(函数)求的一阶导数; diff(函数,n)求的n阶导数(n是具体整数); diff(函数,变量名)求对的偏导数; diff(函数,变量名,n)求对的n阶偏导数; rand函数 rand函数产生由在(0, 1)之间均匀分布的随机数组成的数组。 Y = rand(n) 返回一个n x n的随机矩阵。如果n不是数量,则返回错误信息。 Y = rand(m,n) 或 Y = rand([m n]) 返回一个m x n的随机矩阵。 Y= rand(m,n,p,...) 或 Y = rand([m n p...]) 产生随机数组。 Y = rand(size(A)) 返回一个和A有相同尺寸的随机矩阵。 Mean函数 Mean(A)表示求矩阵A的均值,默认的是求各列的均值 Mean(A,2)求各行均值 figure figure('设置标题顺序是否显示numbertitle','off','name','图标名称','设置框内颜色color','white')
/
本文档为【matlab主要函数】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索