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');
相关文章推荐
- 如何利用MATLAB并行计算缩短程序运行时间
- Matlab并行编程方法1
- MATLAB:1 matlab 与 c++ 数据存储的差异
- 【zz】matlab 腐蚀膨胀算法
- paper 2:图像处理常用的Matlab函数汇总
- MATLAB绘制平行六面体
- 线性代数与MATLAB2
- Matlab中调用文件夹中子文件夹内.m文件的方法
- 【zz】matlab 均值方差
- MATLAB向txt连续写入数据
- Matlab学习一 图像基本处理
- matlab r2010b netcdf 工具箱 安装方法
- matlab符号计算
- 如何让matlab用mex与C连接使用有例…
- 用mcc将matlab程序生成独立的可执…
- mcc函数实现matlab的m文件转化为c
- Matlab2012Ra由M文件产生C代码
- 安装matlab后引起编译gtk3的问题
- Matlab与C/C++联合编程之从Matlab…
- Matlab与C++混合编程(依赖OpenCV…