赞
踩
1.简述matlab简介和基础知识
MATLAB 基础知识
一、MATLAB简介
二、MATLAB基础知识
1、命令窗口是用户与MATLAB进行交互作业的主要场所,用户输入的MATLAB交互命令均在命令窗口执行。
例如:在MATLAB命令窗口下键入
a=[3 2 3;4 7 6;7 5 9]
按回车键后,显示结果
a=
3 2 3
4 7 6
7 5 9
2、求逆矩阵命令
格式:[变量]=inv(参数)
例如:输入b=inv(a),按回车后,显示
b= 1.3750 -0.1250 -0.3750
0.2500 0.2500 -0.2500
-1.2083 -0.0417 0.5417
3、MATLAB系统还具有保存历史纪录的功能,它将本次启动MATLAB系统之后,用户输入的命令和创建的所有变量的值保存起来,用户通过方向键可查找所需的命令。
MATLAB提供了存储变量和删除变量的命令。
SAVE [文件名] [变量名1,变量名2,。.]
功能:将命令中的变量保存在给出的文件中。
说明:(1)若过文件名省略,默认保存在MATLAB.MAT中。
(2)若变量名省略,则保存所有的变量到指定的文件中。
(3)若文件名和变量名都省略,则保存所有定义过的变量到MATLAB.MAT中。
例如:SAVE AA.MAT a b c %将变量a b c保存在文件AA.MAT中。
SAVE BB.MAT % 将所有的变量保存到文件BB.MAT中。
SAVE % 将所有变量保存到文件MATLAB.MAT中。
clear [变量名1 变量名2,。]
功能:删除指定的变量。
说明:若变量名表省略,表明删除当前工作空间中的所有变量。
例如:clear a b c %删除变量a b c
clear %删除当前工作空间的所有变量。
MATLAB还提供了一些命令,专门管理和控制命令窗口。例如:
clc
格式:clc
功能:清除命令窗口。
home
格式:home
功能:光标移动到左上角
who
格式:who
功能:查看当前的所有变量,只给出变量名。
whos
格式:whos
功能:查看当前的所有变量,给出变量的详细信息。信息同变量浏览器。
clear
格式:clear [变量名]
功能:删除后面列出的变量,如果变量名省略,则删除所有的变量。
4、MATLAB中的常量
MATLAB提供了整数、实数、复数和字符四种类型数据。对应的常量类型也是这四种。实数在屏幕显时默认的小数位数为4位。可以用命令改变实数的显示格式。
命令format
格式:format '格式'
例如:format long :输出实数为16位
format short e :5位加指数
format long e : 16位加指数
format rat : 有理数近似
矩阵操作
1、提取矩阵的元素
例如:A=[1 2 3 3; 3 2 4 1; 3 4 5 6]
执行b=A(1,2),结果为:
b= 2
执行v=A([1,2],[3,4]),结果为:
v= 3 3
4 1
2.关于matlab的GUI知识
先看在一个GUI界面内部的传递的数据 每一个控件的回调函数头: function myc_Callback(hObject, eventdata, handles) 第一个参数是hObject,是跟这个callback所关联的控件的handles,在它自己的callback下,可以用代号-> hObject 来调用它。
不用管那么麻烦的概念,只用知道,控件自己的回调函数调用自己的属性,只用hObject.属性名 就可以了(中间一点)。
第二个参数是MATLAB的保留参数 第三个handles,是这个GUI界面的代号。可以通过它获取这个界面的所有信息。
所以在控件A自己的回调函数中,要获取或者设置别的控件的属性,就用 handles.别的控件Tag.属性 ------------------------------ handles hObject 都是结构体。正常的编程概念。
handles格式是一个存放数据的缸。控件的handles是小缸,它的名字叫做hObject;GUI界面的handle是一个大缸,并且这个缸名字也叫做handles;大缸里存放了所有的小缸和所有用户数据,你只需 handles.控件A的tag 就可以存取控件A的信息。
GUIDE创建了一个大缸:结构体handles,handles包括了figure中所有控件的句柄,也包括figure的句柄 比如一个GUI包括一个edit text, 一个panel,一个pop-up menu和一个push button,GUIDE用每个控件的tag来命名handle,handles结构体内容如下: figure1: 160.0011 edit1: 9.0020 uipanel1: 8.0017 popupmenu1: 7.0018 pushbutton1: 161.0011 output: 160.0011 那我怎么把自己计算出或者别的什么数据放到这个缸里呢? ^_^ 在任何地方 handles.自己的变量名 = 某些值 (其实也就是给结构体添加成员变量) 这样你就定义了自己的变量。 在任何地方 b=handles.自己的变量名 (结构名加点号来引用成员变量) 就可以得到这个变量值,同样也可以修改它。
别忘了使用 guidata(hObject, handles);(不用改,直接黏贴) 在函数末尾来保存你对handles和hObject的操作。(不然你自定义的变量就没了)%guidata( 视窗句柄 , 全部句柄 ),如果视窗句柄位置不是视窗句柄,而是一个控件的句柄,那么这个控件的父视窗(parent figure)会被调用。
所以guidata中的视窗句柄 可以是figure的句柄,也可以是figure内所包含的控件的句柄,不管是哪种情况,最终handles会和figure相关联。全部句柄即GUI句柄handles2. 怎么在控件callback函数体之外获取控件和用户自己的数据 GUI界面的handles保存着所有控件的信息以及用户自己的数据,所以只要获取GUI的handles就可以获取所有。
比如在自己定义的函数里获取handles,只需将handles作为参数传进去就可以 function my_function(handles) % handles是GUI的handles %调用GUI内任意一控件的信息 %get(handles.你控件的tag,'要获取的属性名'); temp=get(handles.my_popup,'Value'); 计时timer中:% 在figure创建完成后创建 timer 对象,将handles传入Callback函数 t = timer('TimerFcn', {@timerCallback, handles}, 'ExecutionMode', 'fixedDelay', 'Period', 1.0);% 设置窗口关闭的回调函数 set(handles.figure1, 'DeleteFcn', {@DeleteFcn, t});% 启动定时器 start(t);%传入handles function timerCallback(obj, event, handles) temp=get(handles.my_popup,'Value'); end% 窗口关闭的响应函数-停止计时器 function DeleteFcn(hObject, eventdata, t) stop(t); end3 在其他子函数或者非figure内控件的callback内保存用户数据到guidata GUIDE中, GUIDE生成了一个包括所有GUI句柄的结构体:handles,我们可以保存用户数据到其中(GUIDE generates a handles structure that contains the GUI's handles. You can add your own data to it) guidata( 视窗句柄 , 全部句柄 ) 如果视窗句柄位置不是视窗句柄,而是一个控件的句柄,那么这个控件的父视窗(parent figure)会被调用。所以guidata中的视窗句柄 可以是figure的句柄,也可以是figure内所包含的控件的句柄,不管是哪种情况,最终handles会和figure相关联。
全部句柄即GUI句柄handles guidata(hObject, handles); 在figure控件callback之内调用guidata(hObject, handles);,hObject是控件的句柄。如果在其他子函数或者非figure控件的callback知中使用guidata保存数据,hObject就不再是控件句柄,会出错。
所以我们要用figure的句柄代替hObject,即handles.figure1 guidata( handles.figure1 , handles); 例如在上述计时器的callback函数中保存data: guidata( handles.figure1 , handles);4、在不同GUI之间传递数据 传入 那就来看打开一个GUI界面时,传给他的参数有哪些。 function mygui_OpeningFcn(hObject, eventdata, handles, varargin) 所有的启动参数都是通过varargin传到它的OpeningFcn里面的。
那启动参数可以是哪些呢? 1、figure,也就是窗口参数。 比如说position之类 例如:打开这个GUI时,使用这个命令 mygui('Position',[434 234 234 34])则表示打开窗口在这个位置;还有哪些可控属性可以查help。
2、自定义参数 。 如果传入的参数不是figure的属性(matlab查找不到你输入的属性名),则你输入的参数作为一个向量存放在varargin里面。
比如mygui('路人甲','80'),那varargin{1}存放了'路人甲',varargin{2}='80' 那mygui中对这读取。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。