MATLAB中M文件的编写与调试的过程是什么

MATLAB中M文件的编写与调试的过程是什么,第1张

1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++60,我基于VS 2005实现。

2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。

3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。在命令窗口输入deploytool即可看到。具体使用方法请Help。

当然,也可以输入mcc -m filaname, filaname为要转成exe的m文件

注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;

4、安装matlab path\toolbox\compiler\deploy\win32目录下的MCRInstaller。 5有时候我们会需要filem文件有参数传递,像下面的代码的一样:我们要传一个参数ms进去,但是在控制台下运行fileexe '5'后面参数只能是字符串。所以我们在M文件中把它进类型转换。

MATLAB 产品族可以用来进行以下各种工作:

● 数值分析

● 数值和符号计算

● 工程与科学绘图

● 控制系统的设计与仿真

● 数字图像处理 技术

● 数字信号处理 技术

● 通讯系统设计与仿真

● 财务与金融工程

MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。

matlab特点

●此高级语言可用于技术计算

●此开发环境可对代码、文件和数据进行管理

●交互式工具可以按迭代的方式探查、设计及求解问题

●数学函数可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等

●二维和三维图形函数可用于可视化数据

●各种工具可用于构建自定义的图形用户界面

●各种函数可将基于MATLAB的算法与外部应用程序和语言(如 C、C++、Fortran、Java、COM 以及 Microsoft Excel)集成

MATLAB的优势

(1)友好的工作平台和编程环境

MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强, *** 作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。

(2)简单易用的程序语言

Matlab一个高级的矩阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因。

(3)强大的科学计算机数据处理能力

MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。函数中所使用的算法都是科研和工程计算中的最新研究成果,而前经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组 *** 作以及建模动态仿真等。

(4)出色的图形处理功能

图形处理功能 MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

(5)应用广泛的模块集合工具箱

MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。

(6)实用的程序接口和发布平台

新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。

(7)应用软件开发(包括用户界面)

在开发环境中,使用户更方便地控制多个文件和图形窗口;在编程方面支持了函数嵌套,有条件中断等;在图形化方面,有了更强大的图形标注和处理功能,包括对性对起连接注释等;在输入输出方面,可以直接向Excel和HDF5进行连接。

X1=1;X2=0;X3=1;X4=0;%移位寄存器输入Xi初T态(0101),Yi为移位寄存器各级输出

m=60;%置M序列总长度

fori=1:m%1#

Y4=X4;Y3=X3;Y2=X2;Y1=X1;

X4=Y3;X3=Y2;X2=Y1;

X1=xor(Y3,Y4);%异或运算

ifY4==0

U(i)=-1;

else

U(i)=Y4;

end

end

M=U

%绘图

i1=i

k=1:1:i1;

plot(k,U,k,U,'rx')

xlabel('k')

ylabel('M序列')

title('移位寄存器产生的M序列')

我找到了simulink仿真图怎么发给你

function [m]=mxu(cn)

cn=[1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1]; %cn为移位寄存器,从左向右由小到大

an=[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1] ; %初始寄存器内容

len=length(an); %所需的移位寄存器的长度

L=2^len-1; %m序列的长度

an=[zeros(1,len-1),1];%初始寄存器内容,zeros矩阵函数

m=zeros(1,L)%提速

m(1)=an(1); %m序列的第一个输出码元

for i=2:L

an1(1:len-1)=an(2:len);%移位

an1(len)=mod(sum(cnan),2);%寄存器与反馈的模2和

an=an1;%移位后的寄存器

m(i)=an(1);%新的寄存器输出

end

one_num=sum(m,2);

zero_num=L-one_num;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%画饼图

num=[one_num zero_num];%输入数据

name={'1的概率','0的概率'};%输入标签

name1={'1的数量','0的数量'};%标题

bili=num/L;

percent=round(bili100000000000000000)/100;%计算百分比

percent=num2str(percent');%转化为字符型

percent=cellstr(percent);%转化为字符串数组

biaoti=num2str(num');%转化为字符型

biaoti=cellstr(biaoti);%转化为字符串数组

%在每个标签后加2个空格

for i=1:length(name)

name(i)={[name{i},blanks(2)]};

end

bfh=cellstr(repmat('%',length(num),1));%创建百分号字符串数组

c=strcat(name,percent',bfh');

bt=strcat(name1,biaoti');

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%饼图

figure(1);

pie(num,c)

title(bt);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%画波形图

figure(2);

%subplot(3,1,2)

stairs(m)%对m序列绘图

xlabel('n');

ylabel('y');

title('m序列');

%%%%%%%%%%%%%%%%%%%%%%自相关函数由于阶数大所以运行时间久

%求自相关函数

%rho=zeros(1,L);

%bwb=zeros(1,L)

%xg=2m-1; %变为双极性序列,1对应1,0对应-1

%for j=0:L-1

% bwb=[xg(1+j:L),xg(1:j)];

% rho(j+1)=sum(mbwb);

%end

%j=-L+1:L-1;%调整自相关图像显示的横坐标范围

%rho=[fliplr(rho(2:L)),rho];

%figure(3)

%plot(j,rho);

%axis([-L L -01 12]);%设置横纵坐标范围

%title('m序列的自相关函数');

1建立M文件的必要性:对于常用的或很长的程序,如果每次都从头输入,则非常费时间,也容易出错将这些程序做成M文件就方便多了--只要输入自定义的命令,就可以方便的调用,编程的效率大大提高!(1)在记事本(txt)或maltab命令窗口中编辑好M文件例:编写一个输入半径,计算圆的面积和球的体积 的M文件前两行是文件头,一般说明文件的 类型(M-file),文件名(tutex2),和文件的功能(输入半径,计算圆的面积和球的体积),后面是文件体,主要是解决特定问题的程序代码% M-file, tutex2m% 输入半径,计算圆的面积和球的体积r = input('Type radius:'); %从键盘输入Type radius的值,并将它赋值给rarea=pir^2;volume=(4/3)pir^3;fprintf('The radius is %125f\n',r)fprintf('The area of a circle is %125f\n',area)fprintf('The volume of a sphere is %125f\n',volume)(2)将上面的代码保存到工作空间里保存方法是:File/New/F-ile/保存在matlab工作窗口直接键入M文件名,即可调用以上面的程序为例,tutex2 %键入文件名,回车Type radius: %提示输入半径 ,输入半径,比如 135, 回车 显示如下Type radius:135The radius is 1350000

以上就是关于MATLAB中M文件的编写与调试的过程是什么全部的内容,包括:MATLAB中M文件的编写与调试的过程是什么、求用matlab产生m序列的程序、产生m序列的matlab程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10067464.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存