当前位置:文档之家› matlab入门操作1

matlab入门操作1

第二讲MATLAB程序设计

MATLAB有两种工作方式:交互式的命令行工作方式M文件的程序工作方式

一. M文件

用MATLAB语言编写的程序,称为M文件。M文件有两类:命令文件和函数文件。

命令文件:没有输入参数,也不返回输出

参数。

函数文件:可以输入参数,也可返回输出

参数。

1.M文件的建立与编辑

建立新的M文件:

从MATLAB命令窗口的File菜单中选择New菜单项,再选择M-file命令。

编辑已有的M文件:

从MATLAB命令窗口的Flie菜单中选择Open M-file命令。

2.命令文件

将需要运行的命令编辑到一个命令文件中,然后在MATLAB命令窗口输入该命令文件的名字,就会顺序执

行命令文件中的命令。

【例1】建立一个命令文件将变量a,b的值互

换。

e31.m文件:

a=1:9;

b=[11,12,13;14,15,16;17,18,19];

c=a;a=b;b=c;

a

b

在MATLAB的命令窗口中输入e31,将会执行该命令文件。

二.数据的输入输出

1. input函数:用于向计算机输入一个参数。调用格式:A=input(提示信息,选项);

注:‘s’选项,则允许用户输入一个字符串。

例如想输入一个人的姓名,可采用命令

xm=input('What''s your name:','s')

【例2】求一元二次方程a2+bx+c=0的根。

a=input('a=?');

b=input('b=?');

c=input('c=?');

d=b*b-4*a*c;

x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]

将该程序以aa.m文件存盘,然后运行aa.m文件。

2.pause函数:暂停程序的执行。

调用格式:pause(延迟秒数)

注:如果省略延迟时间,直接使用pause,则将暂停程序,直到用户按任一键后程序继续执行。

3.disp函数:命令窗口输出函数。

调用格式:disp(输出项)

注:输出项为字符串或矩阵。

例如

A='Hello,MATLAB';

disp(A)

输出为:Hello,MATLAB

三.程序设计

(一)选择结构

选择结构的语句有if语句和switch语句。1.if语句

格式一:if条件

语句组

end

格式二:if条件

语句组1

else

语句组2

end

(一)选择结构

格式三:if条件1

语句组1

elseif条件2

语句组2

……

elseif条件m

语句组m

else

语句组m+1

end

(一)选择结构

【例4】输入三角形的三条边,求面积。

A=input('请输入三角形的三条边:');

if A(1)+A(2)>A(3)&A(1)+A(3)>A(2)&A(2)+A(3)>A(1) p=(A(1)+A(2)+A(3))/2;

s=sqrt(p*(p-A(1))*(p-A(2))*(p-A(3)));

disp(s);

else

disp('不能构成一个三角形。')

end

运行:请输入三角形的三条边:[456]

9.9216

(一)选择结构

【例5】输入一个字符,若为大写字母,则输出其后继字符,若为小写字母,则输出其前导字符,若为其他字符则原样输出。

c=input('','s');

if c>='A'&c<='Z'

disp(setstr(abs(c)+1));

elseif c>='a'&c<='z'

disp(setstr(abs(c)-1));

else

disp(c);

end

(一)选择结构

【例6】根据变量num 的值来决定显示的内容。num=input('请输入一个数');

switch num

case-1

disp('I am a teacher.');

case0

disp('I am a student.');

case1

disp('You are a teacher.');

otherwise

disp('You are a student.');

end

(二)循环结构

实现循环结构的语句:for语句和while语句。

1.for语句:

格式:for循环变量=表达式1:表达式2:表达式3循环体语句

end

注:其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值。步长为1时,表达式2可以省略。

(二)循环结构

2.while语句

格式为:

while(条件)

循环体语句

end

【例7】根据例3.6中求y的表达式,求:

(1)y<3时的最大n值。

(2)与(1)的n值对应的y值。

(二)循环结构

求y的表达式

y=0;i=1;

while1%循环的条件为1,即循环条件总是满足的,这是一个永真循环f=1/(2*i-1);

y=y+f;

if y>3

break;

end

i=i+1;

end

n=i-1

y=y-f

(二)循环结构

3.循环的嵌套

如果一个循环结构的循环体又包括一个循环结构,就称为循环的嵌套,或称为多重循环结构。

多重循环的嵌套层数可以是任意的。可以按照嵌套层数,分别叫做二重循环、三重循环等。处于内部的循环叫作内循环,处于外部的循环叫作外循环。

实验一 Matlab基本操作

实验一Matlab基本操作 题目: 1.利用基本矩阵产生 3x3 和15x8 的单位阵,全1 阵,全0 阵,均匀分布的随 机阵([-1,1]之间),正态分布随机阵(方差4,均值1) 2.利用diag()函数和rot90()产生下列矩阵: 然后求解a 阵的逆矩阵aa 及b 阵的特征值和对应特征向量,并利用reshape 将 aa 阵变换成行向量。 3.产生一均匀分布在(-5,5)随机阵(50x2),精确到小数点后一位。 4.编程实现当α∈[-π,π],间隔为1o 时,求解正弦和余弦的值,并利用plot() 函数绘制正弦,余弦曲线。 5.利用rand 函数产生(0,1)间均匀分布的10x10 随机矩阵a,然后统计a 中大于等于0.6 的元素个数。 6.利用randn 函数产生均值为0,方差为1 的10x10 正态分布随机阵,然后统计其中大于-0.5,小于0.5 的元素个数。 7.编程实现下表功能: 8.有一矩阵a,找出矩阵中其值大于1 的元素,并将他们重新排列成列向量b。 9.在一保定市区9 月份平均气温变化测量矩阵temp_Baoding_sep 中(48x30),存在有奇异值(大于42o C,小于0o C),编程实现删除奇异值所在的行。 10.在给定的100x100 矩阵中,删除整行内容全为0 的行,删除整列内容全为0 的列。 程序: 1. %3X3矩阵 a1=eye(3) a2=ones(3) a3=zeros(3) a4=1-2*rand(3) a5=2*randn(3)+1 %15X8矩阵 b1=eye(15,8) b2=ones(15,8) b3=zeros(15,8) b4=1-2*rand(15,8) b5=2*randn(15,8)+1 运行结果:

Matlab figure 基本操作

Matlab figure基本操作 set(gcf,'Position',[300 300 700 220]); %调整Figure位置和大小。前两个为离屏幕左下角的X,Y距离,后两个值为Figure窗口的宽和高 set(gca,'Position',[.05 .1 .9 .8]); %调整绘图范围(比例关系)。0.05+0.9为横向比例,最大为1;0.1+0.8为纵向比例。0.05和0.1为距离Figure左下角的X,Y距离 figure_FontSize=12; set(gca,'FontSize',figure_FontSize,'FontName','Arial'); xlabel('Distance (m)','FontSize',figure_FontSize,'fontweight','b','FontName','Arial'); ylabel('Thickness (m)','FontSize',figure_FontSize,'fontweight','b','FontName','Arial'); box off; %关闭上和右侧刻度线 grid on; %添加网格线 xkd=[10 20 30]; %定义坐标刻度数量 ykd=[100 200 300]; xkd_label=[1 3 5]; %更改刻度 ykd_label=[100 200 300]; set(gca,'xtick',xkd); set(gca,'xticklabel',xkd_label); set(gca,'ytick',ykd); set(gca,'yticklabel',ykd_label); set(gca,'xscale','log'); %改为对数坐标

实验一 Matlab基本操作及运算

实验一Matlab基本操作及运算 一、实验目的: 1.熟悉MATLAB基本操作 2.掌握矩阵、变量、表达式的各种基本运算 二、实验基本知识: 1.熟悉MATLAB环境 熟悉MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器文件和搜索路径浏览器。 2.掌握MATLAB常用命令 3.MATLAB变量与运算符 变量命名规则如下: (1)变量名可以由英语字母、数字和下划线组成 (2)变量名应以英文字母开头 (3)长度不大于31个 (4)区分大小写 MATLAB中设置了一些特殊的变量与常量,列于下表。 MATLAB运算符,通过下面几个表来说明MATLAB的各种常用运算符

表2 MATLAB算术运算符 表3 MATLAB关系运算符 表4 MATLAB逻辑运算符 表5 MATLAB特殊运算

4. MATLAB的一维、二维数组的访问 表6 子数组访问与赋值常用的相关指令格式 5. MATLAB的基本运算 表7 两种运算指令形式和实质内涵的异同表 6.MATLAB的常用函数

表8 标准数组生成函数 表9 数组操作函数 7.多项式运算 poly——产生特征多项式系数向量 roots——求多项式的根 p=poly2str(c,‘x’)—(将特征多项式系数向量c转换为以习惯方式显示是多项式)conv, convs——多项式乘运算 deconv——多项式除运算 polyder(p)——求p的微分 polyder(a, b)——求多项式a,b乘积的微分 [p,q]=polyder(p1,p2)——求解多项式p1/p2微分的有理分式 poly(p,A)——按数组运算规则求多项式p在自变量A的值 polym(p,A)——按矩阵运算规则求多项式p在自变量A的值

MATLAB 基本操作和简单语句输入

实验一基本操作和简单语句输入 一、实验目的和要求 1、熟悉MATLAB的命令窗口 2、掌握MATLAB的一些基本操作,能够进行一般的数值计算 3、实现语句的重调和修改 二、实验内容和步骤 1、启动MATLAB 2、观察MATLAB窗口的组成部分 (1)了解菜单栏各菜单项的功能,用书变打开MA TLAB的各个菜单,在状态栏里显示当前鼠标所指的菜单项的含义 (2)用鼠标指向常用工具栏的每个工具按钮,了解各个工具按钮的含义 3、命令窗口的打开和关闭 (1)查看窗口的打开和关闭 (2)在命令窗口中输入命令a=3;b=4;y=a*b+a/b,然后回车,查看命令显示结果 (3)利用MATLAB中编辑命令行事常用的按键功能,调出上一语句,对它进行修改(如把分号改成逗号,看运行结果),并把运行结果复制到word中保存。 >> a=3;b=4;y=a*b+a/b, y = 12.7500 >> a=3,b=4,y=a*b+a/b, a = 3 b = 4 y = 12.7500 (4)关闭命令窗口

(5)打开命令窗口 4、使用MATLAB帮助 熟悉MATLAB的帮助系统,通过帮助系统了解有关内容 5、在命令窗口中输入demo,将出现MA TLAB的演示窗,通过演示窗,对MATLAB的功能进一步的浏览。 三、试验环境 计算机MA TLAB软件 四、练习 1、调出MATLAB\stateflow的演示实例

2、计算y=x^3+(x-0.98)^2/(x+1.25)^3-5(x+1/x),x=2,x=3时的值 3、计算cos60?-√(9-√2) 4、已知a=3,A=4,b=a^2,B=b^2-1,c=a+A-2B,C=a+B+2c,求C

matlab入门教程文献

MATLAB入门教程 1.MATLAB的基本知识 1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示:">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。小提示:MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MA TLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数

实验一 MATLAB基本操作及运算

实验一 MATLAB 基本操作及运算 一、 实验目的 二、 实验的设备及条件 三、 实验内容 1、 建立以下标量: 1) a=3 2) j ,(j 为虚数单位) 3) c=3/2πj e 2、 建立以下向量: 1) Vb= 2.71382882????????-???? 2) Vc=[4 3.8 … -3.8 -4 ] (向量中的数值从4到-4,步长为-0.2) 3、 建立以下矩阵: 1) 3333Ma ????=?????? L M O M L Ma 为一个7×7的矩阵,其元素全为3. 2) 11191212921020100Mb ??????=?????? L O M M O M L

Mb 为一个10×10的矩阵. 3) 114525173238Mc ????=?????? 4、 使用题1中的变量计算下列等式的x,y,z 的值: 1) ((15)/6)111a x e --=+ 2) 2x π= 3) 3ln([()()]sin(/3))x b c b c a π=+-R ,其中R 表示复数实部。 5、 求解函数值22/(2.25)ct y e -=,其中c 取值见题1,t 的取值范围为题2中行 向量Vc 。 6、 使用题1和题3中所产生的标量和矩阵计算等式 1()()T Mx a Mc Mc Mc -=?? 其中*为矩阵所对应行列式的值,参考det 。 7、 函数的使用和矩阵的访问。 1) 计算矩阵Mb 每一列的和,结果应为行向量形式。 2) 计算整个矩阵Mb 的平均值。 3) 用向量[1 1…1] 替换Mb 的最上一行的值 4) 将矩阵Mb 的第2~5行,第3到9列的元素所构成的矩阵赋值给矩阵SubMb 。 5) 删除矩阵Mb 的第一行; 6) 使用函数rand 产生一个1×10的向量r ,并将r 中值小于0.5的元素设置为0。 8、 已知CellA (1, 1)=‘中国’,CellA (1,2)=‘北京’,CellA (2,1)是一个3乘3的单位阵,CellA (2, 2)=[1 2 3],试用MATLAB 创建一个2×2的细胞数组CellA 。 9、 已知结构数组student 中信息包含有姓名,学号,性别,年龄和班级,试用MATLAB 创建相应的结构数组student 。该数组包含有从自己学号开始连续5个同学的信息(如果学号在你后面的同学不足5个则往前排序),创建完成后查看自己的信息。

Matlab有限元分析操作基础

Matlab 有限元分析20140226 为了用Matlab 进行有限元分析,首先要学会Matlab 基本操作,还要学会使用Matlab 进行有限元分析的基本操作。 1. 复习:上节课分析了弹簧系统 x 推导了系统刚度矩阵 11221 2 1200k k k k k k k k -?? ??-????--+??

2. Matlab有限元分析的基本操作 (1)单元划分(选择何种单元,分成多少个单元,标号)(2)构造单元刚度矩阵(列出…) (3)组装系统刚度矩阵(集成整体刚度矩阵) (4)引入边界条件(消除冗余方程) (5)解方程 (6)后处理(扩展计算)

3. Matlab有限元分析实战【实例1】

分析: 步骤一:单元划分

步骤二:构造单元刚度矩阵 >>k1=SpringElementStiffness(100) >>…?

步骤三:构造系统刚度矩阵 a) 分析SpringAssemble库函数 function y = SpringAssemble(K,k,i,j) % This function assembles the element stiffness % matrix k of the spring with nodes i and j into the % global stiffness matrix K. % function returns the global stiffness matrix K % after the element stiffness matrix k is assembled. K(i,i) = K(i,i) + k(1,1); K(i,j) = K(i,j) + k(1,2); K(j,i) = K(j,i) + k(2,1); K(j,j) = K(j,j) + k(2,2); y = K; b) K是多大矩阵? 今天的系统刚度矩阵是什么? 因为 11 22 1212 k k k k k k k k - ?? ?? - ????--+ ?? 所以 1000100 0200200 100200300 - ?? ?? - ?? ?? -- ?? ?

实验一 MATLAB操作基础

闽 江 学 院 电 子 系 实 验 报 告 学生姓名: 班级: 学 号: 课程:MATLAB 一、 实验题目:MATLAB 操作基础 二、 实验地点:A210 三、 实验目的:1、熟悉MATLAB 的操作环境及基础操作方法。 2、掌握MATLAB 的搜索路径及其设置方法。 3、熟悉MATLAB 帮助信息的查阅方法。 四、 实验内容: 1、先建立自己的工作目录,再将自己的工作目录设置到MATLAB 搜索路径下,在试验用help 命令能否查询到自己的工作目录。 2、在MATLAB 环境下验证例1-1至1-4,并完成以下题目: (1)绘制右图所示图形 (2)求38 3、利用MATLAB 的帮助功能分别查询inv ,plot 、max 、round 等函数的功能及用法。 4、在工作空间建立一个变量a ,同时在当前目录下建立一个M 文件:a.m ,试在命令窗口输入a ,观察结果,并解释原因。 五、 实验环境(使用的软硬件): MATLAB6.5 六、 实验步骤及操作: 1、在D 盘目录下创建新建文件夹“MATLABWORK ”,打开matlab6.5.exe ,点击 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -1-0.8-0.6-0.4-0.200.20.40.60.81

“File”、“Set Path”“Add Folder”找到d:\matlabwork,确定。在命令窗口输入“help”,回车,查询工作目录。 2、(1)在matlab命令窗口中输入 x=0:0.01:1; y=2*pi*x; plot(x,sin(y),(0,1),(-1 1))得出函数图象。 (2)在matlab命令窗口中输入 p=[1 0 0 -8]; x=roots(p)回车,得出结果。 3、在matlab命令窗口中输入 Help inv 回车;help plot回车;help max回车;help round回车查看结果。 七、实验结果: 1.建立自己的工作目录 2.(1)绘制图形

MATLAB的基本操作实验报告

MATLAB 的基本操作(MATLAB Basics ) 1. Plot the following graph (1) Plotting the two curves under one coordinate system with different color sin(), sin(3)y x y x == 代码: clear; x=-pi:pi/1000:pi; y=sin(x); plot(x,y,'r:'); hold on; x=-pi:pi/1000:pi; y=sin(3*x); plot(x,y,'b'); hold off; xlabel('x 轴'); ylabel('y 轴'); legend('y=sinx','y=sin(3x)'); 运行结果: (2) Plotting the standard normal distribution density function: )55(21)(2 2 ≤≤-= -x e x p x π 代码: clear;

MATLAB 的基本操作(MATLAB Basics ) x=-5:0.05:5; y=1/sqrt(2*pi)*exp(-x.^2/2); plot(x,y) 运行结果: (3)Using ‘subplot ’ command to plot 6 curves : )55()6,...,2,1() *sin()(ππ≤≤-==x i x i x f i 代码: clear; x=-5*pi:0.05:5*pi; for i=1:6 subplot(2,3,i); y=sin(i*x); plot(x,y); end 运行结果:

(完整word版)matlab_gui初学者教程

什么是GUI呢? GUI是Graphical User Interface 图形用户界面的意思。象很多高级编程语言一样。Matlab也有图形用户界面开发环境。随着计算机技术的飞速发展。人与计算机的通信方式也发生的很大的变化。从原来的命令行通讯方式(例如很早的DOS系统)变化到了现在的图形界面下的交互方式。而现在绝大多数的应用程序都是在图形化用户界面下运行的。 记得读书的时候。大学开学不久。学校很多同学就开始报考全国计算机等级考试了。当然我也是其中的一分子。其中C语言是大多数人选择的科目。当时在学C语言的时候。经常也会遇到人机交互的例子。譬如一个计算两个数相加的程序。运行程序后便切换到了Dos模式。然后在此模式下输入两个数。再回车。才能返回运算结果。当时就觉得很不方便。也不友好。后来才得知C语言是面向过程的语言。是非面向对象的语言(VC++,VB,Matlab等是面向对象的)。那么下面我们就来看看Matlab是如何简单、快速而友好地解决这类问题的吧。 Matlab GUI编程教程(适用于初学者) 1.首先我们新建一个GUI文件:File/New/GUI 如下图所示; 选择Blank GUI(Default) 2.进入GUI开发环境以后添加两个编辑文本框。6个静态文本框。和一个按钮。布置如下图所示;

布置好各控件以后。我们就可以来为这些控件编写程序来实现两数相加的功能了。3.我们先为数据1文本框添加代码; 点击上图所示红色方框。选择edit1_Callback。光标便立刻移到下面这段代码的位置。function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text % str2double(get(hObject,'String')) returns contents of edit1 as a double 然后在上面这段代码的下面插入如下代码: %以字符串的形式来存储数据文本框1的内容. 如果字符串不是数字。 则现实空白内容 input = str2num(get(hObject,'String')); %检查输入是否为空. 如果为空,则默认显示为0 if(isempty(input)) set(hObject,'String','0')

MATLAB基本使用方法

基本使用方法 一、简单数学运算 (一)计算器使用方法 a)直接输入法 0.5*pi*5^2 b)存储变量法 a=0.5*pi*5^2 注意: 1)空格不处理 2)遵守四则运算法则 3)多重括号,从里向外运算 4)小括号代表运算级别,中括号生成向量和数组,花括号生成单元数组(二)数学运算符

(三)标点符号的使用 >> a = [1,2,3;4,5,6;7,8,9] 二、常用命令和快捷键

三、数据类型 (一)整数 >>x = int8(50) >>class(x) >>y = 50 >>class(y) 注意: 1)MATLAB默认数据类型为双精度型,定义其它变量类型时需要指定类型 2)整型除法运算时,系统先以双精度进行运算,将结果转为整型 3)不同整型数据不能运算 4)运算结果超出上限或下限,结果取值上限或下限 >>x = int8(100) >>y = int8(90) >>z = x + y (二)浮点数 单精度和双精度浮点数 >>a = single(10.01) >>b = double(10.01) >>class(a) >>class(b) >>eps(‘single’) >>eps(‘double’) >>realmin(‘single’) >>realmax(‘single’) >>realmin(‘double’) >>realmax(‘double’)

(三)复数 >> a = 1 + 2i >> b = complex(1,2) >> c1 = int8([1;2;3;4]) >> c2 = int8([5;6;7;8]) >> c3 = complex(c1,c2) >> d1 = 1 + 0i >> d2 = complex(8,0) >> d3 = complex(9) >> isreal(d1) >> isreal(d2) >> isreal(d3) (四)逻辑变量 1:真; 0:假 >> a = [true, false, true, true, false] >> b1 = magic(3) >> b2 = b1 > 5 >> b3 = sparse(b2) >> d1 = islogical(b1) >> d2 = islogical(b2) >> d3 = islogical(b3) >> A = rand(5) >> B = A>0.5 >> A(B) = 0 >> A = magic(4) >> B = isprime(A) >> A(~B) = 0

相关主题
文本预览
相关文档 最新文档