文档库 最新最全的文档下载
当前位置:文档库 › 由MATLAB GUIDE创建GUI

由MATLAB GUIDE创建GUI

由MATLAB GUIDE创建GUI
由MATLAB GUIDE创建GUI

由MATLAB GUIDE创建GUI

这两天,本人写了四篇关于由MATLAB GUIDE创建GUI的文章,见迈特莱博。包括MATLAB GUIDE基本操作、MATLAB GUI基础知识、MATLAB GUI Callback函数基本操作和MA TLAB GUIDE数据传递机制。这是本人一个学期教学总结。

学期结束了,对本学期MATLAB课程进行总结,发现又有新的动向:在同学们提交的作业中,有大半是用MATLAB GUIDE完成的(以前最多20%几,增加一倍)。本学期新增加的教学内容(MATLAB GUIDE编程),看来是有用的,受到了同学们的欢迎,看来,MATLAB GUIDE工具更适合当代年轻人的思维模式——可视化编程。

针对这一情况,相信有更多的网友希望了解这方面知识,所以,写了四篇文章做了系统介绍,但由于虎踞龙蟠SBBS访问量少,为使更多网友受益,所以想到整理一下,发个百度文库。

记得我的文章“用MATLAB解方程的三个实例”及“用matlab求定积分的三个实例”等文章均有网友做为百度文库发布,访问量甚至超过原文章,所以,该项工作我提前做了。以下是四篇文章内容,不当之处请批评指正。

一、MATLAB GUIDE基本操作

GUIDE是MATLAB图形用户接口开发环境(Graphical User Interface Development Environment)的简称,它提供了一系列工具用于建立GUI对象。这些工具极大简化了设计和创建GUI的过程。使用GUI可以完成两项工作:(1)GUI图形界面布局;

(2)GUI编程。

1.运行GUIDE

有三种方法可以启动GUIDE:

(1)在命令行输入:

>> guide

(2)单击MATLAB主窗口的(GUIDE)按钮;

(3)单击MATLAB主窗口【Start】按钮,出现弹出菜单,在主程序组【MATLAB】中选择“GUIDE(GUI Builder)”选择项。

以上三种方法均:生成GUIDE快速启动对话框,如图所示。

2.创建新的GUI

创建新的GUI时,样板可以选择以下4种:

(1)Blank GUI —一个空的样板;

(2)GUI with Uicontrols —打开包含一些uicontrol对象的GUI编辑器;

(3)GUI with Axes and Menu —打开包含菜单和一些坐标轴图形对象的GUI编辑器;

(4)Modal Question Dialog —打开一个对话框编辑器,默认为一个问题对话框。

一般采用Blank GUI样板。单击OK按钮后,进入GUI编辑界面,如图所示。

3.打开已保存的文件

在快速启动对话框中选择打开已经存在的GUI时,可通过浏览的方式找到本地磁盘上的用户GUI文件,或在已打开过的列表中直接选择要打开的文件。

如图所示。

4.GUI编辑界面组成

GUI编辑界面主要包括3部分:GUI对象选择区、GUI工具栏和GUI布局区。下面分别介绍这3个部分。

(1)GUI对象选择区

打开【File】|【Preferences...】|GUIDE,勾选show name in component palette,则在编辑界面显示GUI对象名称,如图所示。

(2)GUI工具栏

GUI工具栏主要由对齐对象、菜单编辑器、Tab顺序编辑器、M文件编辑器、属性查看器、对象浏览器和运行界面组成。

(3)GUI布局区

GUI布局区用于布局GUI对象。在布局区单击鼠标右键,弹出的菜单如图所示。

5.属性查看器

属性查看器用来查看、设置或修改对象的属性,是GUI编辑器的主要功能。

调用对象属性查看器有四种方法:

(1)在对象上双击;

(2)在对象上右击,选择Property Inspector;

(3)选中对象后,单击工具栏上的(Property Inspector)按钮;

(4)菜单栏选择:【View】|Property Inspecto。如下图所示为pushbutton1"按钮"对象的属性。

6.GUI的M文件

创建一个用户界面应用程序,缺省有两个文件组织,*.fig和*.m。均由MATLAB的GUIDE工具自动生成,其中自动生成的M文件,控制并决定GUI 对用户操作的响应。它包含运行GUI所需要的所有代码。GUIDE自动生成M文件的框架,用户在该框架下编写GUI组件的回调函数。

M文件由一系列子函数构成,包含主函数、Opening函数、Output函数和回调函数。其中主函数不能修改,否则容易导致GUI界面初始化失败。

7.实例

例如,新建一个文件名为abc的GUI,并在界面上建一个按钮,点击该按钮,则绘出以下图形,界面和其对应的M文件如下:

function varargout = abc(varargin)

% ABC M-file for abc.fig

% ABC, by itself, creates a new ABC or raises the existing

% singleton*.

% H = ABC returns the handle to a new ABC or the handle to

% the existing singleton*.

% ABC('CALLBACK',hObject,eventData,handles,...) calls the local

% function named CALLBACK in ABC.M with the given input arguments.

% ABC('Property','Value',...) creates a new ABC or raises the

% existing singleton*. Starting from the left, property value pairs are

% applied to the GUI before abc_OpeningFcn gets called. An

% unrecognized property name or invalid value makes property application

% stop. All inputs are passed to abc_OpeningFcn via varargin.

% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one

% instance to run (singleton)".

% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help abc

% Last Modified by GUIDE v2.5 30-Mar-2010 13:22:20

% Begin initialization code - DO NOT EDIT

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @abc_OpeningFcn, ...

'gui_OutputFcn', @abc_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin && ischar(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else

gui_mainfcn(gui_State, varargin{:});

end

% End initialization code - DO NOT EDIT

% --- Executes just before abc is made visible.

function abc_OpeningFcn(hObject, eventdata, handles, varargin)

% This function has no output args, see OutputFcn.

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to abc (see VARARGIN)

% Choose default command line output for abc

handles.output = hObject;

% Update handles structure

guidata(hObject, handles);

% UIWAIT makes abc wait for user response (see UIRESUME)

% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.

function varargout = abc_OutputFcn(hObject, eventdata, handles)

% varargout cell array for returning output args (see VARARGOUT);

% hObject handle to figure

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure

varargout{1} = handles.output;

% --- Executes on button press in pushbutton2.

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

figure

t=0:0.1:2*pi;

plot(t,sin(t),'--',t,cos(t))

legend('正弦','余弦','Location','Best')

二、MATLAB GUI基础知识

用户界面(或接口)是指:人与机器(或程序)之间交互作用的工具和方法。如键盘、鼠标都可成为与计算机交换信息的接口。

图形用户界面(Graphical User Interfaces ,GUI)则是由窗口、光标、按键、菜单、文字说明等对象(Objects)构成的一个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活这些图形对象,使计算机产生某种动作或变化,比如实现计算、绘图等。

假如读者所从事的数据分析、解方程、计算结果可视工作比较单一,那么一般不会考虑GUI的制作。

但是如果读者想向别人提供应用程序,想进行某种技术、方法的演示,想制作一个供反复使用且操作简单的专用工具,那么图形用户界面也许是最好的选择之一。也是体现用户综合运用MATLAB的能力。

1.控件种类

GUI首先是一个窗口(对话框),窗口上除菜单外(菜单专门介绍),控件是一种实现用户与计算机交互的主要途径,利用这些控件可以实现有关控制。这些控件名称如下:

(1)按钮(Push Button)

(2)双位按钮(Toggle Button)

(3)单选按钮(Radio Button)

(4)复选框(Check Box)

(5)列表框(List Box)

(6)弹出框(Popup Menu)

(7)编辑框(Edit Box)

(8)滑动条(Slider)

(9)静态文本(Static Text)

(10)边框(Frame)

2.控件的四个重要属性

控件有四个重要属性,它们是:…style?、…callback?、…string?和…position。

(1)style —控件类型。在MATLAB中,控件使用统一函数创建,即"uicontrol",控件类型用于区分不同类型的控件。在GUIDE中,该属性自动设置。

(2)callback —回调函数。即单击或双击一个控件要执行的回调命令,其默认为%automatic,不做修改,这个Callback就会自动指向M文件编辑器里的函数体内。

(3)string —控件名称。即字符串变量,用来说明控件的功能或作用,提示用户选择相应操作;在编辑框控件中,用来设置初值;

(4)posion —位置。标识控件在当前窗口中所处的位置,以数组的形式表述,即[a,b,c,d]。其中a,b代表控件左下角起始位置,c,d代表控件大小。

3.控件的其他常用属性

(1)unit —屏幕单位。共有六种,它们是英寸(inches)、厘米(centimeters)、归一化(normalized)、点(points)、像素(pixels)和字符(characters),其中像素是缺省单位。使用较方便的是归一化单位,即屏幕(或窗口)左下角为(0,0),右上角为(1,1)。

(2)fontsize —字体大小。控件名称字符串字体大小设置,同unit属性一样,一般定义整个窗口为统一的缺省设置值。

(3)value —控件的值。在单选按钮中,设置“1”表示选中,设置“0”表示非选中,且只能有1个处于选中状态;

(4)max,min —最大值与最小值。在滑动条控件中,用来设置滑动值范围;

(5)sliderstep —步长。在滑动条控件中,用来设置点击滑动条两端的小尖头或点击滑动区域滑动条滑动的距离。

4.回调函数

用户对控件进行操作(如鼠标单击、双击或移动,键盘输入等)的时候,控件对该操作进行响应,所指定执行的函数,就是该控件的回调函数,也称callback 函数。该函数不会主动执行,只在用户对控件执行特定操作时执行。

采用函数编写的GUI中,控件回调属性的值一般为字符串单元数组,每个单元均为一条MATLAB语句(指令),语句按单元顺序排列。每条MATLAB语句用单引号引起来,语句本身含有的单引号改为两个单引号。

采用GUIDE创建的GUI中,控件回调函数指令可直接放在该对应控件的函数中,指令写法与命令行一致。

5.Callback程序

若要在M文件编辑器里编写Callback程序,那么属性检查器里的Callback 则不能作任何修改,默认为%automatic,也就是当用户将GUI存储并打开M文件编辑器后,这个Callback就会自动指向M文件编辑器里的Callback函数,如在上一篇博文提到的示例,“按钮”的Callback函数中包含了四行指令,点击(激动)该按钮,则会立即执行该四行命令,绘出图形。

function pushbutton1_Callback(hObject, eventdata, handles)

figure

t=0:0.1:2*pi;

plot(t,sin(t),'--',t,cos(t))

legend('正弦','余弦','Location','Best')

三、MATLAB GUI Callback程序基本操作

Callback是控件回调函数的一种属性,用户对控件进行操作的时候,控件对该操作进行响应,所指定执行的函数,就是该控件的回调函数,也称callback函数。

一般情况下,该函数包含一组命令,即一段程序。而在该程序中,通常首先要获取界面上的各控件的值,如:编辑框中输入的内容或单选框是选择哪个选项等,相当于一般计算机语言程序开头部分的赋值语句,而后面的计算分析等语句,包括分支、循环等控制,同一般程序编写方法并无差别,所以,以下主要介绍GUI界面中数据的获取方法。

1.图形对象

MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、光源、区域块和方框等。系统将每一个对象按树型结构组织起来。即:

根:图形对象的根,对应于计算机屏幕,根只有一个,其它所有图形对象都是根的后代。

图形窗口: 根的子代,窗口的数目不限,所有图形窗口都是根屏幕的子代,除根之外,其它对象则是窗的后代。

界面控制:图形窗口的子代,创建用户界面控制对象,使得用户可采用鼠标在图形上作功能选择,并返回句柄。

界面菜单: 图形窗口的子代,创建用户界面菜单对象。

轴:图形窗口的子代,创建轴对象,并返回句柄,线面字块像的父辈。

线:轴的子代,创建线对象。

面:轴的子代,创建块对象。

字:轴的子代,创建字对象。

块:轴的子代,创建块对象。

像:轴的子代,创建图像对象。

2.MATLAB图形对象句柄

句柄概念在WINDOWS编程中是一个很重要的概念,在许多地方都扮演着重要的角色。句柄的概念是:在Windows环境中,句柄是用来标识项目的,这些项目包括:*.模块(module)、*.任务(task)、*.实例(instance)、*.文件(file)、*.内存块(block of memory)、*.菜单(menu)、*.控制(control)、*.字体(font)、*.资源(resource),包括图标(icon),光标(cursor),字符串(string)等。

MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。

MATLAB通过图形对象句柄来设置或获取其某一属性的值。

3.图形对象属性

MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。如一个按钮是一个控件,而Callback则是按钮的属性名,所执行的回调函数则是属性值。

获取某一控件的属性值用get函数。get函数的调用格式为:V=get(句柄,属性名)。其中句柄代表某一控件,V是返回的属性值。

设置某一控件的属性值用set函数。set函数的调用格式为:set(句柄,属性名1,属性值1,属性名2,属性值2,…)。其中句柄用于指明要操作的图形对象。

4.Callback程序基本操作

Callback程序首先要在图形界面上获得各各控件的值,然后进行一系列计算过程,最后将计算结果用图形的方式或字符串的方式显示在图形界面上。

(1)通过以下方式得到按钮pushbutton1的句柄:

h1=handles.pushbutton1 或h1=findobj('tag','pushbutton1')

(2)如果已知某一编辑框的句柄为hh(得到方法同上),从该编辑框获取输入内容,用以下语句:

str = get(hh,'String');

(3)如果编辑框输入的是数值,要参与后面的程序计算,则需要对数据类型进行转换,即:

instr = str2num(get(hh,'String'));

(4)还有一种情况,如果获取当前控件的值,用以下方法即可:

instr = str2double(get(hObject,'String')); %从编辑框获取输入值

(5)或不用事先得到控件的句柄,直接通过结构数组获得编辑框控件edit1的值:

instr = str2double(get(handles.edit1,'String')); %从编辑框获取输入值

(6)将计算结果显示在编辑框edit2中,用以下方法:

set(handles.edit2,'String',str)); %其中str是字符串变量。

(7)如果计算结果是数值型,则要进行转换:

str=num2str(n); %n为数值型变量

(8)如果要将计算结果绘出图形,并绘制在界面上预先定义的坐标轴axes1中,则在绘图命令前加上以下语句,使axes1成为当前坐标轴:

axes(handles.axes1) % handles.axes1即为坐标轴axes1的句柄

四、MATLAB GUIDE 数据传递机制

在使用GUIDE编程中,主要工作是对Callback函数的程序编写与调试,除了编程部分外,数据调用与传递是比较重要的,也是必须掌握的。Callback函数的调试主要在M文件中进行。

1.GUIDE的函数

M文件由一系列子函数构成,包含主函数、Opening函数、Output函数和回调函数。

第一行为主函数声明,必须指定主函数名,且与文件名相同;varargin为输入参数,varargout为输出参数。

Opening —Opening函数是在GUI开始运行但还不可见的时候执行,主要进行一些初始化操作,为GUI第一个执行的函数。

Output —Output函数是必要时可输出数据到命令行,是第二个执行的函数,以上两个函数只会执行一次。

Callbacks —Callbacks函数是当用户每次触发GUI对象时,一般都会执行一个相应的回调函数。

2.GUIDE的参数

当创建GUI时,输入参数varargin为空;当用户触发GUI对象时,varargin 为一个1 4的单元数组:第一个单元为所要执行回调函数的函数名。例如,用户单击了Tag值为pushbutton1的pushbutton对象,此时varargin{1}='pushbutton1_Callback',即为要执行的回调函数pushbutton1_Callback 的函数名。第2~4个单元为该回调函数的输入参数:hObject、eventdata和handles。hObject为当前回调函数对应的GUI对象的句柄,eventdata为未定义的保留参数,handles为当前GUI所有数据的结构体,包含所有GUI对象的句柄和用户定义的数据。所以,用户要定义一个变量pc,可使用如下方法:

handles.pc=10 %变量pc可以在任何一个控件的Callback函数中调用。

3.两个重要的结构数组

GUIDE创建的GUI的M文件中,除主函数外的所有函数都有如下两个输入参数:

(1)hObject —在Opening函数和Output函数中,表示当前figure对象的句柄;在Callback函数中,表示该callback函数所属对象的句柄;

(2)handles —GUI数据。包含所有对象信息和用户数据的结构体,相当于一个GUI对象和用户数据的“容器”。所以,在程序中经常使用以下语句更新数据:

guidata(hObject, handles);

4. MATLAB GUIDE中数据

在MATLAB GUI中,数据分两种:GUI data和Application data。两种数据的存取机制是相同的,但是GUI data使用起来比较方便。

每一个GUI 图形界面都维持一个和自己的界面的图形(figure)相联系的一个handles数据结构,这个数据结构中容纳图形界面内所有控件(按钮、列表框、编辑框等)的句柄,相当于一个大的“容器”,里面存放了figure内所有控件的句柄。

5. MATLAB GUIDE数据访问机制

handles结构可以被figure内所有控件的回调函数访问,因为回调函数的输入参数中都有handles结构。此外,在控件的回调函数内可以把数据存储到handles 结构中。例如,在编辑框edit1的回调函数内想获得该编辑框的句柄,hObject 可以,也可以用handles.edit1,这两个值是一样的,没有区别,只不过获得控件句柄的方式不同而已:hObject是调用回调函数时直接传过来的,handles.edit1是从handles结构中取得的。

各控件的回调函数中,hObject的值是不一样的,分别代表调用回调函数的控件的句柄,而handles结构却是一样的。这种机制便于figure内的不同控件的回调函数内传递数据。

6.GUIDE 数据传递机制

如果把figure对象当做一个大缸,而把其他对象例如axes、button等等当做这个大缸里的小缸,那么handles就相当于这个大缸的句柄,可以用大缸的句柄来设置小缸的属性,例如handles.pushbutton1。hObject就相当于每一个小缸的句柄了,例如,要改变当前控件的某一属性,可以直接在响应控件的function里添加:

set(hObject,'property','value');

也可以在另外的控件里改变其属性:

set(handles.pushbutton1,'property','value');

handles和hObject都是“句柄”,储存了它所代表的“那个对象”的信息;只不过handles代表的是当前整个界面,hObject代表的是当前的这个控件(比如按钮,编辑框)

因为回调函数的输入参数中都有handles结构,如:

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

所以,这种数据传递机制是很方便和容易掌握的。

7.实例一:编辑框数据获得在按钮控件中调用

以下是三个Callback函数:

(1)密度

function density_Callback(hObject, eventdata, handles)

density = str2double(get(hObject, 'String')); %获得数据

handles.metricdata.density = density; %存入数据

guidata(hObject,handles) %更新数据

(2)体积

function volume_Callback(hObject, eventdata, handles)

volume = str2double(get(hObject, 'String'));

handles.metricdata.volume = volume;

guidata(hObject,handles)

(3)计算

% --- Executes on button press in calculate.

function calculate_Callback(hObject, eventdata, handles)

mass = handles.metricdata.density * handles.metricdata.volume;

set(handles.mass, 'String', mass); %text控件刷新

8.实例二:弹出框选项获得与程序控制

以下是三个主要函数:

(1)建立弹出选择项

function popupmenu1_CreateFcn(hObject, eventdata, handles)

set(hObject, 'String', {'plot(rand(5))', 'plot(sin(1:0.01:25))', 'bar(1:.5:10)', 'plot(membrane)', 'surf(peaks)'});

(2)选择一个选项,函数为空,没有动作

function popupmenu1_Callback(hObject, eventdata, handles)

(3)按钮Callback函数,选择坐标轴,清除图形,获得列表框选择项,判

断并处理。

% --- Executes on button press in pushbutton1.

function pushbutton1_Callback(hObject, eventdata, handles)

axes(handles.axes1);

cla;

popup_sel_index = get(handles.popupmenu1, 'Value');

switch popup_sel_index

case 1

plot(rand(5));

case 2

plot(sin(1:0.01:25.99));

case 3

bar(1:.5:10);

case 4

plot(membrane);

case 5

surf(peaks);

end

以上实例来自GUIDE修建GUI向导中的(2)GUI with Uicontrols —打开包含一些uicontrol对象的GUI编辑器和(3)GUI with Axes and Menu —打开包含菜单和一些坐标轴图形对象的GUI编辑器。

matlab中常见函数功用

⊙在matlab中clear,clc,clf,hold作用介绍 clear是清变量, clc只清屏, clf清除图形窗口上的旧图形, hold on是为了显示多幅图像时,防止新的窗口替代旧的窗口。 ①format:设置输出格式 对浮点性变量,缺省为format short. format并不影响matlab如何计算和存储变量的值。对浮点型变量的计算,即单精度或双精度,按合适的浮点精度进行,而不论变量是如何显示的。对整型变量采用整型数据。整型变量总是根据不同的类(class)以合适的数据位显示,例如,3位数字显示显示int8范围-128:127。 format short, long不影响整型变量的显示。 format long 显示15位双精度,7为单精度(scaled fixed point) format short 显示5位(scaled fixed point format with 5 digits) format short eng 至少5位加3位指数 format long eng 16位加至少3位指数 format hex 十六进制 format bank 2个十进制位 format + 正、负或零 format rat 有理数近似 format short 缺省显示 format long g 对双精度,显示15位定点或浮点格式,对单精度,显示7位定点或浮点格式。 format short g 5位定点或浮点格式 format short e 5位浮点格式 format long e 双精度为15位浮点格式,单精度为7为浮点格式 ②plot函数 基本形式 >> y=[0 0.58 0.70 0.95 0.83 0.25]; >> plot(y) 生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。 >> x=linspace(0,2*pi,30); % 生成一组线性等距的数值 >> y=sin(x); >> plot(x,y) 生成的图形是上30个点连成的光滑的正弦曲线。 多重线 在同一个画面上可以画许多条曲线,只需多给出几个数组,例如 >> x=0:pi/15:2*pi; >> y=sin(x); >> w=cos(x);

matlab函数用法

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 三维等位线

MATLAB各种“窗函数”定义及调用

MATLAB窗函数大全 1.矩形窗(Rectangle Window)调用格式:w=boxcar(n),根据长度n 产生一个矩形窗w。 2.三角窗(Triangular Window)调用格式:w=triang(n),根据长度n 产生一个三角窗w。 3.汉宁窗(Hanning Window)调用格式:w=hanning(n),根据长度n 产生一个汉宁窗w。 4.海明窗(Hamming Window)调用格式:w=hamming(n),根据长度n 产生一个海明窗w。 5.布拉克曼窗(Blackman Window)调用格式:w=blackman(n),根据长度n 产生一个布拉克曼窗w。 6.恺撒窗(Kaiser Window)调用格式:w=kaiser(n,beta),根据长度n 和影响窗函数旁瓣的β参数产生一个恺撒窗w。 窗函数: 1.矩形窗:利用w=boxcar(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。‘w=boxcar(n)’等价于‘w=ones(1,n)’. 2.三角窗:利用w=triang(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。 w=triang(N-2)等价于bartlett(N)。

3.汉宁窗:利用w=hanning(n)得到窗函数,其中n为窗函数的长度,而返回值w 为一个n 阶的向量,包含了窗函数的n个系数。 4.海明窗:利用w=hamming(n)得到窗函数,其中n为窗函数的长度,而返回值w 为一个n 阶的向量,包含了窗函数的n个系数。它和汉宁窗的主瓣宽度相同,但是它的旁瓣进一步被压低。 5.布拉克曼窗:利用w=blackman(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它的主瓣宽度是矩形窗主瓣宽度的3倍,为12*pi/N,但是它的最大旁瓣值比主瓣值低57dB。 6.切比雪夫窗:它是等波纹的,利用函数w=chebwin(N,R)方式设计出N阶的切比雪夫2窗函数,函数的主瓣值比旁瓣值高RdB,且旁瓣是等波纹的。 7.巴特里特窗:利用w=bartlett(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。 8.凯塞窗:利用w=kaiser(n,beta)的形式得到窗函数。

Matlab中的函数

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 列排序置换向量?

matlab中所有函数解析_太全了

A a abs 绝对值, 模 acos 反余弦 acosh 反双曲余弦 acot 反余切 acoth 反双曲余切 acsc 反余割 acsch 反双曲余割 all 所有元素均非零则为真alpha 透明控制 angle 相角 ans 最新表达式的运算结果any 有非零元则为真 area 面域图 asec 反正割 asech 反双曲正割 asin 反正弦 asinh 反双曲正弦 atan 反正切 atan2 四象限反正切 atanh 反双曲正切 autumn 红、黄浓淡色 axis 轴的刻度和表现 B b bar 直方图 binocdf 二项分布概率 binopdf 二项分布累积概率binornd 产生二项分布随机数组blanks 空格符号 bode 给出系统的对数频率曲线bone 蓝色调浓淡色阵 box 坐标封闭开关 break 终止最内循环brighten 控制色彩的明暗 butter ButterWorth低通滤波器 C c caxis (伪)颜色轴刻度 cd 设置当前工作目录 cdf2rdf 复数对角型转换到实块对角型 ceil 朝正无穷大方向取整 cell 创建单元数组 char 创建字符串数组或者将其他类型 变量转化为字符串数组 charfcn Maple函数 Children 图形对象的子对象 clabel 等高线标注 class 判别数据类别 clc 清除指令窗中显示内容 clear 从内存中清除变量和函数 clf 清除当前图形窗图形 close 关闭图形窗 collect 合并同类项 Color 图形对象色彩属性 colorbar 显示色条 colorcube 三浓淡多彩交错色 colordef 定义图形窗色彩 colormap 设置色图 comet 彗星状轨迹图 comet3 三维彗星动态轨迹线图compass 射线图;主用于方向和速度 cond 矩阵条件数 conj 复数共轭 continue 将控制转交给外层的for或while 循环 contour 等高线图

Matlab自定义函数的五种方法

Matlab自定义函数的五种方法 [转] n 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; n 2、函数文件+子函数:定义一个具有多个自定义函数的M文件; n 3、Inline:无需M文件,直接定义; n 4、Syms+subs: 无需M文件,直接定义; n 5、字符串+subs:无需M文件,直接定义. 1、函数文件+调用函数文件:定义多个M文件: % 调用函数文件:myfile.m clear clc for t=1:10 y=mylfg(t); fprintf(‘%4d^(1/3)=%6.4f\n’,t,y); end %自定义函数文件: mylfg.m function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致 Y=x^(1/3); 注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。 2、函数文件+子函数:定义一个具有多个子函数的M 文件

%命令文件:funtry2.m function []=funtry2() for t=1:10 y=lfg2(t) fprintf(‘%4d^(1/3)=%6.4f\n’); End function y=lfg2(x) Y= x^(1/3); %注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。 3、Inline:无需M文件,直接定义; %inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。 调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。 例如: f=inline(‘x^2+y’,’x’,’y’); z=f(2,3) Ans=7 注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab 的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。 例: Clear Clc

matlab自定义函数与极值求法

实验5 matlab 自定义函数与导数应用 实验目的 1.学习matlab 自定义函数. 2.加深理解罗必塔法则、极值、最值、单调性. 实验内容 1.学习matlab 自定义函数及求函数最小值命令. 函数关系是指变量之间的对应法则,这种对应法则需要我们告诉计算机,这样,当我们输入自变量时,计算机才会给出函数值,matlab 软件包含了大量的函数,比如常用的正弦、余弦函数等.matlab 允许用户自定义函数,即允许用户将自己的新函数加到已存在的matlab 函数库中,显然这为matlab 提供了扩展的功能,无庸置疑,这也正是matlab 的精髓所在.因为matlab 的强大功能就源于这种为解决用户特殊问题的需要而创建新函数的能力.matlab 自定义函数是一个指令集合,第一行必须以单词function 作为引导词,存为具有扩展名“.m ”的文件,故称之为函数M -文件. 函数M -文件的定义格式为: function 输出参数=函数名(输入参数) 函数体 …… 函数体 一旦函数被定义,就必须将其存为M -文件,以便今后可随时调用.比如我们希望建立函数12)(2++=x x x f ,在matlab 工作区中输入命令: syms x ;y=x^2+2*x+1; 不能建立函数关系,只建立了一个变量名为y 的符号表达式,当我们调用y 时,将返回这一表达式. y ? y=x^2+2*x+1 当给出x 的值时,matlab 不能给出相应的函数值来. x=3;y ? y=x^2+2*x+1 如果我们先给x 赋值. x=3;y=x^2+2*x+1 得结果:y=16 若希望得出2|=x y 的值,输入: x=2;y ? 得结果:y=16,不是2=x 时的值.读者从这里已经领悟到在matlab 工作区中输入命令:y=x^2+2*x+1不能建立函数关系,如何建立函数关系呢?我们可以点选菜单Fill\New\M-fill 打开matlab 文本编辑器,输入: function y=f1(x) y=x^2+2*x+1; 存为f1.m .调用该函数时,输入: syms x ;y=f1(x)?

matlab function非常全地 matlab 函数

一、常用对象操作:除了一般windows窗口的常用功能键外。 1、!dir 可以查看当前工作目录的文件。 !dir& 可以在dos状态下查看。 2、who 可以查看当前工作空间变量名, whos 可以查看变量名细节。 3、功能键: 功能键快捷键说明 方向上键 Ctrl+P 返回前一行输入 方向下键 Ctrl+N 返回下一行输入 方向左键 Ctrl+B 光标向后移一个字符 方向右键 Ctrl+F 光标向前移一个字符 Ctrl+方向右键 Ctrl+R 光标向右移一个字符 Ctrl+方向左键 Ctrl+L 光标向左移一个字符 home Ctrl+A 光标移到行首 End Ctrl+E 光标移到行尾 Esc Ctrl+U 清除一行 Del Ctrl+D 清除光标所在的字符 Backspace Ctrl+H 删除光标前一个字符 Ctrl+K 删除到行尾 Ctrl+C 中断正在执行的命令 4、clc可以命令窗口显示的内容,但并不清除工作空间。 二、函数及运算 1、运算符: +:加,-:减, *:乘, /:除, \:左除 ^:幂,‘:复数的共轭转置,():制定运算顺序。 2、常用函数表: sin( ) 正弦(变量为弧度) Cot( ) 余切(变量为弧度) sind( ) 正弦(变量为度数) Cotd( ) 余切(变量为度数) asin( ) 反正弦(返回弧度) acot( ) 反余切(返回弧度) Asind( ) 反正弦(返回度数) acotd( ) 反余切(返回度数) cos( ) 余弦(变量为弧度) exp( ) 指数 cosd( ) 余弦(变量为度数) log( ) 对数 acos( ) 余正弦(返回弧度) log10( ) 以10为底对数 acosd( ) 余正弦(返回度数) sqrt( ) 开方 tan( ) 正切(变量为弧度) realsqrt( ) 返回非负根 tand( ) 正切(变量为度数)

matlab的函数解释

5.4 三维图形 5.4.1三维曲线 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,…,xn,yn,zn,选项n) 其中每一组x,y,z组成一组曲线的坐标参数,选项的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z 对应元素构成一条三维曲线。当x,y,z是同维矩阵时,则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩阵列数。 5.4.2三维曲面 1.产生三维数据 在MATLAB中,利用meshgrid函数产生平面区域内的网格坐标矩阵。其格式为: x=a:d1:b; y=c:d2:d; [X,Y]=meshgrid(x,y); 语句执行后,矩阵X的每一行都是向量x,行数等于向量y的元素的个数,矩阵Y的每一列都是向量y,列数等于向量x的元素的个数。 2.绘制三维曲面的函数 surf函数和mesh函数的调用格式为: mesh(x,y,z,c) surf(x,y,z,c) 一般情况下,x,y,z是维数相同的矩阵。x,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。 此外,还有带等高线的三维网格曲面函数meshc和带底座的三维网格曲面函数meshz。其用法与mesh类似,不同的是meshc还在xy平面上绘制曲面在z轴方向的等高线,meshz还在xy平面上绘制曲面的底座。 3.标准三维曲面 sphere函数的调用格式为: [x,y,z]=sphere(n) cylinder函数的调用格式为: [x,y,z]= cylinder(R,n) MATLAB还有一个peaks 函数,称为多峰函数,常用于三维曲面的演示。 5.4.3其他三维图形 在介绍二维图形时,曾提到条形图、杆图、饼图和填充图等特殊图形,它们还可以以三维形式出现,使用的函数分别是bar3、stem3、pie3 和fill3。bar3函数绘制三维条形图,常用格式为: bar3(y) bar3(x,y) stem3函数绘制离散序列数据的三维杆图,常用格式为: stem3(z) stem3(x,y,z) pie3函数绘制三维饼图,常用格式为: pie3(x)

matlab中函数定义

总结matlab中函数定义的一些内容: 1, 函数定义格式在matlab中应该做成M文件,文件名要和你文件里的function后面的函数名一致 在File新建一个M-file 在M-file里编辑函数 格式为: function [输出实参表]=函数名(输入实参数) 注释部分 函数体语句 return语句(可以有可以没有) 如果是文件中的子函数,则可以任意取名,也可以在同一个文件中定义多个子函数 例: function [max,min]=mymainfun(x) %主函数 n=length(x); max=mysubfun1(x,n); min=mysubfun2(x); function r=mysubfun1(x,n) %子函数1 x1=sort(x); r=x1(n); function r=mysubfun2(x) %子函数2 x1=sort(x); r=x1(1); Matlab自定义函数的五种方法 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; 2、函数文件+子函数:定义一个具有多个自定义函数的M文件; 3、Inline:无需M文件,直接定义; 4、Syms+subs:无需M文件,直接定义; 5、字符串+subs:无需M文件,直接定义. 1、函数文件+调用函数文件:定义多个M文件: %调用函数文件:myfile.m clear clc for t=1:10 y=mylfg(t); fprintf(‘M^(1/3)=%6.4f\n’,t,y);

end %自定义函数文件: mylfg.m function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致 Y=x^(1/3); 注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。 2、函数文件+子函数:定义一个具有多个子函数的M 文件 %命令文件:funtry2.m function []=funtry2() for t=1:10 y=lfg2(t) fprintf(‘M^(1/3)=%6.4f\n’); End function y=lfg2(x) Y= x^(1/3); %注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。 3、Inline:无需M文件,直接定义; %inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。 调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。 例如: f=inline(‘x^2+y’,’x’,’y’); z=f(2,3) Ans=7 注:这种函数定义方式是将它作为一个内部函数调用。特点是,它是基于Matlab 的数值运算内核的,所以它的运算速度较快,程序效率更高。缺点是,该方法只能对数值进行代入,不支持符号代入,且对定义后的函数不能进行求导等符号运算。 例: Clear Clc f=’x^2’; Syms x g; g=x^2; h=inline(‘x^2’,’x’);

matlab函数定义方法

matlab函数定义方法 一、内联函数(inline function) 在matlab命令窗口、程序或函数中创建局部函数时,可通过inline构造函数。优点是不必将其储存为一个单独文件,同时又可以像使用一般函数那样调用它。 在运用中有几点限制:不能调用另一个inline函数,只能由一个matlab表达式组成,并且只能返回一个变量,显然不允许[u,v]这种形式。因而,任何要求逻辑运算或乘法运算以求得最终结果的场合,都不能应用inline。除这些限制,在许多情况下使用该函数非常方便。 Inline函数的一般形式为: FunctionName=inline('任何有效的matlab表达式','p1','p2' ,…) ,其中'p1', 'p2' ,…是出现在表达式中的所有变量的名字。 *************************************************** 例1:求解F(x)=x^2*cos(a*x)-b ,a,b是标量;x是向量 在命令窗口输入: Fofx=inline('x .^2.*cos(a*x)-b','x','a','b'); g= Fofx([pi/3 pi/3.5],4,1) 系统输出为: g = -1.5483 -1.7259 ***************************************************** 例2: fks=inline('sin(k*x).*x.^2','x','k'); i=1; for k=0:0.1:5 fk(i)=quad(@(x)fks(x,k),0,5); i=i+1; end k=[0:0.1:5]; plot(k,fk) ***************************************************** 在线函数从字符串表达式创建函数,不能直接利用工作区变量,例如: a=2; f=inline('a*x.^2','x'); f(2) %计算时会出现不识别参数a的提示。 还可以创建多元函数,例如: f=inline('x+y','x','y') 创建了二元函数f(x,y)=x+y,工作区输入f(2,3)计算2+3 *****************************************************

Matlab子函数定义

Matlab子函数定义 Matlab子函数定义 (2010-12-21 11:42:47)标签:matlab子函数定义嵌套函数分类:matlab学习 在matlab的函数定义中,如果函数如果函数较长或较多,往往可以将各函数分别写在多个.m文件中,但有时函数可能很短,就几行,可能希望将多个函数定义放在同一个.m文件中,这里就存在一个子函数的定义问题。 在matlab中一个.m文件中可以有多个的子函数,但仅能有一个主函数,并且M 文件名必须和主函数相同[1]。(注:本人经自己试验发现,自己使用的matlab7.5版本并不要求主函数名和.m文件名相同,但调用的时候使用的仍然必须是.m文件名,所以为了理解和记忆的方便,仍然建议M文件名和主函数名同名。) 其使用方法如下图,图1: 图1 在这个.m文件中共有三个函数,其中subfunction是主函数,而add和subtract 是两个子函数,在函数调用是使用的是文件名subfunction_cxd(x,y),如 [a,b]=subfuction_cxd(1,1),而如果仅是调用主函数的话,则会出现未定义的错误提示,如下图,图2: 图2 我们甚至可以将函数的调用也写到同一个.m文件中,如以下这个例子,见图3:

图3 这里我们定义了一个没有输入没有输出的函数该函数将作为主函数,而其他的函数均为子函数,由主函数调用子函数,而子函数间是可以互相调用,但不能调用主函数。这时的m文件不需要任何输入,调用时可以直接点运行m文件的快捷键,或者在命令框中输入m文件名然后回车运行,如上例输入命令subfunction_cxd 回车即可得到结果。 M文件中以下这种将函数的调用直接写到m文件中的情况是不允许的,如图4,出现错误提示如图5,必须也把调用写成函数的形式,或者将子函数都写成单独的m文件。

matlab各类“窗函数”定义及调用[整理版]

matlab各类“窗函数”定义及调用[整理版] MATLAB窗函数大全 1.矩形窗(Rectangle Window) 调用格式:w=boxcar(n),根据长度 n 产生一个矩形窗 w。 2.三角窗(Triangular Window) 调用格式:w=triang(n),根据长度 n 产生一个三角窗 w。 3.汉宁窗(Hanning Window) 调用格式:w=hanning(n),根据长度 n 产生一个汉宁窗 w。 4.海明窗(Hamming Window) 调用格式:w=hamming(n),根据长度 n 产生一个海明窗 w。 5.布拉克曼窗(Blackman Window)调用格式:w=blackman(n),根据长度 n 产生一个布拉克曼窗 w。 6.恺撒窗(Kaiser Window) 调用格式:w=kaiser(n,beta),根据长度 n 和影响窗函数旁瓣的β参数产生一个恺撒窗w。 窗函数: 1(矩形窗:利用w=boxcar(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。‘w=boxcar(n)’ 等价于‘w=ones(1,n)’. 2.三角窗:利用w=triang(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,它的元素由窗函数的值组成。 w=triang(N-2)等价于bartlett(N)。 3(汉宁窗:利用w=hanning(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。

4(海明窗:利用w=hamming(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它和汉宁窗的主瓣宽度相同,但是它的旁瓣进一步被压低。 5.布拉克曼窗:利用w=blackman(n)得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。它的主瓣宽度是矩形窗主瓣宽度的3倍,为12*pi/N,但是它的最大旁瓣值比主瓣值低57dB。 6(切比雪夫窗:它是等波纹的,利用函数w=chebwin(N,R)方式设计出N阶的切比雪夫2窗函数,函数的主瓣值比旁瓣值高RdB,且旁瓣是等波纹的。 7.巴特里特窗:利用w=bartlett(n)的形式得到窗函数,其中n为窗函数的长度,而返回值w为一个n阶的向量,包含了窗函数的n个系数。 8(凯塞窗:利用w=kaiser(n,beta)的形式得到窗函数。

matlab的FFT函数介绍

2010-04-26 22:16 相关语法: Y = fft(X) Y = fft(X,n) Y = fft(X,[],dim) Y = fft(X,n,dim) 定义如下: 相关的一个例子: Fs = 1000; % 采样频率 T = 1/Fs; % 采样时间 L = 1000; % 总的采样点数 t = (0:L-1)*T; % 时间序列(时间轴) %产生一个幅值为频率为50HZ正弦+另外一个信号的幅值为1频率为120Hz的正弦信号 x = *sin(2*pi*50*t) + sin(2*pi*120*t); y = x + 2*randn(size(t)); % 混入噪声信号 plot(Fs*t(1:50),y(1:50)) %画出前50个点 title('Signal Corrupted with Zero-Mean Random Noise') xlabel('time (milliseconds)') NFFT = 2^nextpow2(L); % 求得最接近总采样点的2^n,这里应该是2^10=1024 Y = fft(y,NFFT)/L; %进行fft变换(除以总采样点数,是为了后面精确看出原始信号幅值) f = Fs/2*linspace(0,1,NFFT/2+1);%频率轴(只画到Fs/2即可,由于y为实数,后面一半是对称的)

% 画出频率幅度图形,可以看出50Hz幅值大概,120Hz幅值大概为1. plot(f,2*abs(Y(1:NFFT/2+1))) title('Single-Sided Amplitude Spectrum of y(t)') xlabel('Frequency (Hz)') ylabel('|Y(f)|') PS:前段时间,只是为了自己看明白,没有管太多,刚才上空间发现几位的留言,感觉惭愧。其实要掌握matlab中fft的用法, 主要有两点注意的地方: 1、从公式上看,matlab的fft序号是从1到N,但是绝大多数教材上是从0到N-1。 2、Y=fft(x)之后,这个Y是一个复数,它的模值应该除以(length(x)2),才能得到各个频率信号实际幅值。

matlab中如何定义函数

许多时候希望将特定的代码(算法)书写成函数的形式,提高代码的可封装性与重复性,简化代码设计,提高执行效率!下面简单介绍一下matlab中的函数定义与使用。 方法/步骤 1. 1 首先建立M文件或直接点击(File/New/Function)建立函数文件,其中函数文件的格式是: function [输出变量] = 函数名称(输入变量) % 注释 % 函数体 2. 2 如下所示,是编写的一个求1到n之和的求和函数eg_sum,按照上述格式,编写代码如下并保存文件,注意文件命名时不能以数字开头: function [s] = eg_sum( n ) % calculate the sum of 1..n s = 0; for i = 1:n s = s + i; end

3. 3 回到控制台Command Window(主界面),注意要使用之前保存的函数文件名来调用函数,如下所示: >> clear >> a = eg_sum(10) 运行结果:a = 55 4. 4 许多网友说函数名一定要与函数文件名一致,其实不是这样子的,只要知道调用函数时是通过函数文件名调用的这点即可!比如下图所示,即使文件名仍然是eg_sum,但我可以修改函数名为:my_sum 调用时用文件名调用就好,如下所示:

>> b = eg_sum(10) 运行结果:b = 55 END 注意事项 在调用函数时,请确保已将matlab当前目录切换到函数文件所在处,不然会报错:Undefined function 'eg_sum' for input arguments of type 'double'.

matlab调用函数程序

Matlab自定义函数的五种方法 n 1、函数文件+调用命令文件:需单独定义一个自定义函数的M文件; n 2、函数文件+子函数:定义一个具有多个自定义函数的M文件; n 3、Inline:无需M文件,直接定义; n 4、Syms+subs: 无需M文件,直接定义; n 5、字符串+subs:无需M文件,直接定义. 1、函数文件+调用函数文件:定义多个M文件: % 调用函数文件:myfile.m clear clc for t=1:10 y=mylfg(t); fprintf(‘M^(1/3)=%6.4f\n’,t,y); end %自定义函数文件: mylfg.m function y=mylfg(x) %注意:函数名(mylfg)必须与文件名(mylfg.m)一致 Y=x^(1/3); 注:这种方法要求自定义函数必须单独写一个M文件,不能与调用的命令文件写在同一个M文件中。 2、函数文件+子函数:定义一个具有多个子函数的M文件 %命令文件:funtry2.m function []=funtry2() for t=1:10 y=lfg2(t) fprintf(‘M^(1/3)=%6.4f\n’); End function y=lfg2(x) Y= x^(1/3); %注:自定义函数文件funtry2.m中可以定义多个子函数function。子函数lfg2只能被主函数和主函数中的其他子函数调用。 3、Inline:无需M文件,直接定义; %inline命令用来定义一个内联函数:f=inline(‘函数表达式’, ‘变量1’,’变量2’,……)。 调用方式:y=f(数值列表) %注意:代入的数值列表顺序应与inline()定义的变量名顺序一致。 例如: f=inline(‘x^2+y’,’x’,’y’); z=f(2,3) Ans=7

(完整版)matlab中的set函数总结

matlab中的set函数总结 1ATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值成为属性值。例如,LineSyle是曲线对象的一个属性名,它的值决定着线型,取值可以是'-'、''、'-'、'--'或'none'。 2属性的操作 se函数的调用格式为: se(句柄,属性名1,属性值1,属性名2,属性值2,…) 例子: ler x=00212; y1=bessel(1,x); y2=bessel(2,x); y3=bessel(3,x); =lo(x,y1,x,y2,x,y3); se(,{'LineWid'},{2;5;8})%se(,{'LineWid'},{2})==se(,'LineWid',2),将所有线宽设置为2 se(,{'Color'},{'r';'g';'b'},{'LineSyle'},{'--';'';'-'})%设置颜色和线宽 xis([012-051])%设置坐标轴围 gridon X=0112; Y=-050251; se(g,'xik',X,'yik',Y)%设置网格的显示格式,g获取当前igure的句柄 se(xlbel('Time'),'FonSize',12,'Color','r') y=ylbel('Amliude'); se(y,'FonSize',12,'Color','g')

legend(,'Firs','Seond','Tird')%添加图例 ile('BesselFunions')%添加标题 [y,ix]=min(y1);%找到y1的最小值以及改值的下标,赋给y和ix ex(x(ix),y,'Firsin\rigrro','HorizonlAlignmen','rig')%插入本 具体可改哪些属性值见贴 blogedninomx543218124essgesx --------------------------------------------------------------------------------------- 这两天在看句柄式图形方面的东西,以下是我在看书过程中整理的学习笔记,比较详细的介绍了句柄以及与其密切相关的各种图形对象和它们的属性。希望能对初学lb界面设计的朋友们有所帮助。 GU学习笔记: 句柄式图形常用函数: (1)ge()返回句柄值所指定的图形对象的所有属性名称与相对应的属性值 (2)=ge()返回由句柄值所指定的图形对象的属性结构数组,并且该数组的字段名称就是该对象的属性名称。 (3)=ge(0,'ory')返回所有能由用户设置的属性的默认定义值。 (4)=ge(0,'ForybjeTyeProeryNme1','ForybjeTyeProeryNme2',)返回指定对象类型指定的属性值,输入参数ForybjeTyeProeryNme为一个关键词,由字符Fory与图形对象类型(如Figure)还有属性名称(如Color)组成。 =ge(0,'oryFigureColor')返回Figure对象的Color属性值。 (5)=ge(,'DeulbjeTyeProeryNme1','DeulbjeTyeProeryNme1',)返回句柄值为的对象指定属性的默认值。如“DeulFigureColor”。 (6)=ge(,'deul')列出对象的所有属性的默认属性值 (7)=se()返回句柄值所指定的图形对象的所有属性名称对应的可设置属性值,为结构数组,存储对象的属性名称,其字段值为相对应的属性值。属性值中用{}括起来的表示默认值。 (8)se(,)使用指定的属性值来设置由句柄值所指定的对象属性,为结构数组,其字段

Matlab函数名大全

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 三维等位线

相关文档