您的位置:首页 > 编程语言 > MATLAB

MATLAB入门

2016-01-18 17:41 369 查看

MATLAB 概述

20世纪70年代后期,时任美国新墨西哥大学计算机科学系主任的Cleve Moler教授为学生设计了一组调用LINPACK和EISPACK库程序的“通俗易用”的接口,此即是用FORTRAN编写的处于萌芽状态的MATLAB

MATLAB 的工作环境

MATLAB各种操作命令都是从命令行窗口开始的,用户可以在命令窗口中输入MATLAB命令,实现相应的功能。

命令行窗口

x = linespace(0,3*pi,20);
y = cos(x) + sin(x);
e = std(y) * ones(size(x))   %标准差
errorbar(x,y,e);
e =

Columns 1 through 14

1.0058    1.0058    1.0058    1.0058    1.0058    1.0058    1.0058    1.0058    1.0058    1.0058    1.0058    1.0058    1.0058    1.0058

Columns 15 through 20

1.0058    1.0058    1.0058    1.0058    1.0058    1.0058


运行结果如图1-1所示



在MATLAB中,命令行窗口常用的命令和功能表如表1-1所示

命令功能
clc删去一页命令窗口,光标回屏幕左上角
clear从工作空间清除所有变量
clf清除图形窗口内容
help查询指定文件的路径

帮助系统窗口

图形窗口

M文件窗口

MATLAB程序控制结构

顺序结构

顺序结构是指所有组成程序源代码的语句按照由上至下的次序依次执行,知道程序的最后一个语句。这种程序有点事容易编制;缺点是结构单一,能够实现的功能有限。

数据输入

从键盘输出数据,则可以使用函数input来进行,该函数的调用格式为

A = input(提示语句,选项);


其中,提示信息为一个字符串,用于提示用户输入什么样的数据。

如果在input函数调用时‘s’ 选项,则允许用户输入一个字符串。例如,想输入一个人的名字,可以采用以下命令:

xm = input('What is your name','s');


数据输出

MATLAB提供的命令窗口输出函数主要有disp,其调用格式为disp(输出项);

其中,输出项可以为字符串,也可以为矩阵。

A = 'Hello, MATLAB';
disp(A);


运行结果如下

Hello, MATLAB


选择结构

在MATLAB中,选择结构依照不同的条件进行判断,然后根据判断的结果进行某种方法来解决某个问题。

if 语句

单分支if语句

if 条件
语句组1
end


双分支if语句

if 条件
语句组1
else
语句组2
end


多分枝if语句

if <逻辑判断语句1>
语句组1
elseif <逻辑判断语句2>
语句组2
elseif <逻辑判断语句3>
语句组3
…
else
语句组N
end


switch-case语句

switch 表达式
case 语句1
语句组1
case 语句2
语句组2
…
case 语句m
语句组m
otherwise
语句组n
end


循环结构

for语句

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


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

while循环结构

while(表达式)
MATLAB语句
end


变量、数值与表达式

变量

”变量”来源于数学,是计算机语言中能存储计算结果和能表示值抽象概念。

特殊变量说明
ans默认变量名
pi圆周率
inf无穷大
eps浮点运算相对精度
nan非数,即结果不确定
关键字

>> iskeyword

ans =

'break'
'case'
'catch'
'classdef'
'continue'
'else'
'elseif'
'end'
'for'
'function'
'global'
'if'
'otherwise'
'parfor'
'persistent'
'return'
'spmd'
'switch'
'try'
'while'


数值

表达式

数组与矩阵

数组的创建与操作

常见的数组运算

矩阵的表示

矩阵的运算

数值分析

图形绘制

二维图形的绘制

绘制二维曲线图

%绘制sin(x),sin(2x),sin(3x)
clear all;
%准备数据
x = 0 : 0.01 : 3*pi;
y1 = sin(x);
y2 = sin(2*x);
y3 = sin(3*x);
%设置当前绘图区
figure;
%绘图
plot(x,y1,x,y2,x,y3);
%设置坐标轴和网络线属性
axis([0 8 -2 2]);
grid on;
%标注图形
xlabel('x');
ylabel('y');
title('演示绘图基本步骤');
legend('sin(x)','sin(2x)','sin(3x)')


运行结果如图1-2所示

x = (0:pi/100:2*pi)';
y1 = 2*exp(-0.5*x)*[1,-1];
y2 = 2*exp(-0.5*x).*sin(2*pi*x);
x1 = (0:12)/2;
y3 = 2*exp(-0.5*x1).*sin(2*pi*x1);
plot(x,y1,'g--',x,y2,'b-',x1,y3,'rp');




绘制对数曲线图

x = logspace(-1,2);
%logspace(a,b),创建行向量x,第一个元素为10^a,最后一个元素为10^b,形成总数为50个元素的等比数列
loglog(x,exp(x),'-s');
grid on;


运行结果如图1-3所示



绘制其他二维曲线图

figure
subplot(221)   %条形图
x = -2.9:0.2:2.9;
bar(x,exp(-x.^2))
subplot(222)   %针状图
x = 0:0.1:4
y = (x.^0.8).*exp(-x)
stem(x,y)
subplot(223)   %阶梯图
x = 0:0.25:10
stairs(x,sin(2*x)+sin(x))
subplot(224)   %饼状图
x = [21 43 99 1]
pie(x)


运行结果如图1-4所示



绘制三维曲线

绘制三维折线和曲线

t = 0:pi/50:8*pi;
x = sin(t);
y = cos(t);
z = t;
plot3(x,y,z);
xlabel('sin(t)');
ylabel('cos(t)');
zlabel('t');
title('三维螺旋线');


运行结果如图1-5所示:



三维网络曲面的绘制

x = -7:0.5:7;
y = x;
[X,Y] = meshgrid(x,y);
Q = sqrt(X.^2+Y.^2)+eps;
Z = cos(Q)./Q;
mesh(X,Y,Z);
grid on;
axis([-10 10 -10 10 -1 1]);
xlabel('x');
ylabel('y');
zlabel('z');


运行结果如图1-6所示



三维阴影曲面的绘制

x = -7:0.5:7;
y = x;
[X,Y] = meshgrid(x,y);
Q = sqrt(X.^2+Y.^2)+eps;
Z = cos(Q)./Q;
surf(X,Y,Z);
grid on;
axis([-10 10 -10 10 -0.5 1.5]);
shading interp;
xlabel('x');
ylabel('y');
zlabel('z');
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: