微信公众号:八一考研数学竞赛
点击上方,选择星标或置顶,每天给你送干货!
该排版使用了md2All,是markdown排版神器,可同时在微信公众号、博客园、掘金、csdn等平台正确显示当前预览的效果
写在前面
还有半个来月美赛,八一便写篇maltab全教程,本文适用于完全没有任何matlab基础的学生看,但同时也可以给那些曾对matlab熟悉的同学进行回忆。。。一般常用的数学软件有Maple,Mathematica,Matlab
等;常用的大型统计软件有SAS,SPSS,hadoop
等。下面我主要介绍一些Matlab的教程。
Matlab有五大通用功能:数值计算(Numeric),符号运算(Symbolic),数据可视化(Graphic),数据图形文字统一处理(Notebook)和建模仿真可视化(Simulink)。它在线性代数,矩阵分析,数值计算及优化问题,还包括数理统计和随机信号分析,电路与系统,建模和仿真等众多领域的理论研究和工程设计中得到了广泛应用。它是1984年由美国Mathworks 公司推向市场。该软件有三大特点:一是功能强大;二是界面友善,语言自然;三是开放性强。Matlab的版本目前是Matlab2018。
matlab简介介绍
首先我们要认识下什么m文件,有三点:(1)如果我们想灵活应用matlab去解决实际问题,充分调用matlab的科学技术资源,就需要编辑m文件;(2)包含matlab语言代码的文件称为m文件,其扩展名为m;(3)编辑m文件可使用各种文本编辑器。然后将matlab语句构成的程序存储成以m为扩展名的文件,然后再执行该程序文件,这种工作模式称为程序文件模式。一般m文件的语法类似于c语言,但又有其自身特点。它只是一个简单的ASCII码文本文件,执行程序时逐行解释运行程序,matlab是解释性的编程语言。
m文件有两类
- 独立的m文件 — 称命令文件:实际上是一串指令的集合,与在命令窗口逐行执行文件中的所有指令,其结果是一样的。没有输入输出参数。
命令文件包括两部分:注释文件和程序文件
%RANK Number of linearly independent rows or columns.
% K = RANK(X) is the number of singular values of X
% that are larger than MAX(SIZE(X)) * NORM(X) * EPS.
% K = RANK(X,tol) is the number of singular values of X that
% are larger than tol.
% Copyright (c) 1984-94 by The MathWorks, Inc.
- 调用m文件 — 称函数文件:matlab自定义的函数文件称内置函数文件调用内置函数的方法:使用函数名并给出相应的入口、出口参数即可。例如:sin.m函数——用type sin查不到。调用格式:y=sin(2*x) 实际应用中:
x=0:2*pi/180:2*pi;
y=sin(2*x)
plot(x,y)
matlab的程序结构与运算符
matlab语言的程序结构与其它高级语言是一致的,分为顺序结构,循环结构,分支结构。
- 顺序结构—— 依次顺序执行程序的各条语句;
- 循环结构 —— 被重复执行的一组语句,循环是计算机解决问题的主要手段。 循环语句主要有:(1)for -end(中间为可执行语句);(2)while -end;(3)分支结构(if — else — end语句有3种形式,用elseif可替代一般高级语言中的switch-case-end语句)
在条件表达式中,通常都是由
- 关系操作符 >, < ,<=, >=, = =, ~= 等
- 逻辑操作符 &,| , ~等
- 逻辑函数:isequal —— 若是相等则为真;isempty ——若是空矩阵则为真;isstr —— 若是字符串则为真。
Matlab 运算符分五类:数学、关系,逻辑、位、集合
数学运算符:是进行各种数学运算,按其优先级别依次为
- 转置.’、共轭转置’、幂次.、矩阵幂次^
- 正、负号+、-
- 乘法.、矩阵乘法、元素左右除.\、./、矩阵左右除\、/
- 加减法+、-
- 冒号:在同一优先级中,运算自左至右完成,对运算顺序不确定时,最好以 “()” 实现强制运算顺序.
对于矩阵,右除A/B,相当于XB=A 的解矩阵,左除A\B,相当于AX=B 的解矩阵
关系运算符:有六种关系运算符==,~=,>,>=,<,<=
关系运算符总是以矩阵内元素对元素做运算,若满足关系,则返回 1,不满足则返回 0
逻辑运算符:有三种:&(与),|(或),~(非)
相关命令还有:all(),any()。当所有向量元素为 “真”,all 返回 1,而当任意元素为 “真”,any 即返回 1
位运算符:对非负整数的逻辑运算,主要函数如下
- bitand():位对位 AND
- bitor():位对位 OR
- bitxor():位对位异或
- bitset():设定某位
- bitget():取得某位
- bitcmp():位对位取反
- bitshift():位移(左移)
集合运算符:仅限于向量运算,此时 matlab 将向量视为集合来进行各种集合运算,常用命令如下
- Union():并集
- intersect():交集
- setdiff():差集
- setxor():异或
- unique():最小等效集合
- ismember():元素是否属于集合
matlab自定义函数
首先我们来在命令窗口敲写一段代码,创建好脚本之后,按快捷键F5运行,可以得到
for i = 1 : 10
x = linspace(0,10,101);
plot(x,sin(x + i));
print(gcf,'-deps',strcat('plot',num2str(i),'.ps'));
end
在熟练matlab过程我们需要掌握的几个常用的快捷键:
- %:单行注释
- ctrl + r:多行注释
- ctrl + t:取消多行注释
- ctrl + i:智能缩进
- %%:指定节
- ctrl + enter:执行节
- f5:运行程序
然后举个LM