为什么要学MATLAB?因为MATLAB是很棒的数学工具,但和其他编程软件一样,它永远是工具,更重要的是我们要解决的问题和解决问题的过程,所以数学建模,学MATLAB的语法是不够的,更要掌握数学模型,了解数据处理的方法,并融合到自己的思想里。笔者了解的不多,所以先摘一张表,共勉。

类型 方法
数据型 拟合、回归、分类、聚类、主成分等
连续型 微分、偏微分、差分、函数等
离散型 目标规划、智能算法(神经网络、遗传、模拟退火、蚁群、粒子群)等
评价型 层次分析法、多因子决策、回归等
机理型 自主编程

MATLAB基本数据类型

single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char

MATLAB符号含义的粗浅理解

(),在函数后,规范函数输入,也可以用作数组的输出 比如b(1)
[],在函数输出,规范函数输出,也可以用作数组的输入 比如b=[1,2]
{},在数据类型里是元胞数组,和结构数组很像,但结构数组是一般数组带名字,元胞是下标访问
元胞:a(1,2)={[2,2;3];5}
结构:b(1).name=

%注释
;用在语句后,在命令行窗口不作输出,也可以在数组里表示分行
:单作下标的时候,表示该维度全部范围
~可以是取反,可以是忽略参数[~,idx]=sort(kidx);
@ 粗浅地理解是方便传参的符号。

它可以和函数构成函数句柄。那么什么是句柄呢,句柄是指针的指针,相当于指针是地址,而句柄是代号,在Windows系统里,指针是会变化的,句柄指向的位置是会变的,但句柄是不会变化的。不管理解了没有,反正记住这两种用法。

y=@sin

那么sin(pi/6)=y(pi/6)

f=@(x,y)x.*y;

此时输入

x=[1,1,1,1];
y=[2,3,4,5];
f(x,y)

输出

ans =2     3     4     5

MATLAB脚本

用edit命令创建脚本

edit mysphere

执行该命令后,会在当前文件夹创建 myshpere.m文件并打开

MATLAB保存工作区

save

save('image_label.mat','label','image_name','m','n','k')

这边第一个是保存的文件名称,后面几个是保存的变量

MATLAB解微分方程

matlab中解常微分方程有两种方法,一种是符号解法,另一种是数值解法
常用符号解法
即使用dslove命令

dsolve('Dy=1','x')

dsolve命令中 D表示一阶微分,D2表示二阶,以此类推
默认变量为t 所以使用时应声明变量
此外,如图所示警告,该写法可以运算,但不符合新版要求,应该先声明符号变量

输出结果:

这是官网的要求

--------------------------------------------我是分割线------------------------------------------
新的写法:

一般微分方程

单个因变量的 返回原函数

syms y(t) a
eqn = diff(y,t) == a*y;
S = dsolve(eqn)

S = C1*exp(a*t)

多个的返回一个结构

syms y(t) z(t)
eqns = [diff(y,t) == z, diff(z,t) == -y];
S = dsolve(eqns)

S = struct with fields:
z: [1x1 sym]
y: [1x1 sym]

如果要输出y和z ,再输入

ySol(t) = S.y
zSol(t) = S.z

or

S.y
S.z

也可以一开始就写如下代码,定义输出类型

syms y(t) z(t)
eqns = [diff(y,t)==z, diff(z,t)==-y];
[ySol(t),zSol(t)] = dsolve(eqns)

其中syms 声明符号变量
eqn(equation 方程式)
diff(y,t)表示y关于t的一阶导数
diff(y,t,2)表示二阶,以此类推

带条件的微分方程

syms y(t) a
eqn = diff(y,t) == a*y;
cond = y(0) == 5;
ySol(t) = dsolve(eqn,cond)

对于没有显式解的微分方程(不做深入了解)

sol = dsolve(eqn,'Implicit',true)

MATLAB矩阵

矩阵的基本操作

  • 定义一个数组/矩阵

A=[1,1,1]
B=[1,1,1;2,2,2]

  • 数组的基本运算
    +,- 作为双目是基本的加减运算,作为单目是正负运算
    .* 逐元素乘法 A.*B 表示 A 和 B 的逐元素乘积。(逐元素,即aij*bij)
    .^ 逐元素求幂 A.^B 表示包含元素 A(i,j) 的 B(i,j) 次幂的矩阵。(逐元素,即aij^bij)
    ./ 逐元素右除 A./B 表示A(i,j)/B(i,j) 。
    .\ 逐元素左除
    .’ 普通转置

  • 矩阵的基本运算
    ’ 复共轭转置 和普通转置区别在于对于含复数的矩阵,复共轭转置后复数取共轭
    / 右除 A/B 结果为BX=A的解
    \左除 B\A 结果为 AX=B的解
    *矩阵乘法
    ^ 矩阵幂 矩阵可以作为指数(由于笔者精力和能力不够 先不深入了解)

数组运算隐式转换,自动填充,对于之前定义的A、B

B-Aans=
0     0     0
1     1     1

但注意3*3矩阵减去3*2是会报错的

Pascal矩阵(杨辉三角)

P=pascal(n)

生成一个Pascal矩阵 如图为pascal(4)

A = pascal(n,1)

返回帕斯卡矩阵的下三角 Cholesky 因子,A 是对合矩阵
对于正定矩阵P,存在Cholesky 因子 A,A*A’=P
下为A = pascal(3,1)

 1     0     01    -1     01    -2     1

P=pascal(3,'double')

指定矩阵的类

求矩阵的逆

inv(A)

单位矩阵

eye(5)

全0矩阵

zeros(5)

全1矩阵

a=ones(5)

对角矩阵

a=diag[1,2,3]

矩阵转化为三角矩阵

下三角(保留矩阵的下三角部分)

tril()

上三角

triu()

MATLAB绘图

画球体

[x,y,z] = sphere();  % 创建一个球,括号里参数k表示由k*k平面组成,默认20*20个平面组成,半径默认为1
r = 2;
figure(1);              %打开窗口,可写可不写,默认打开一个窗口,参数是窗口的编号
surf(x*r,y*r,z*r)       % 绘制半径为2的球.
axis equal              % 坐标轴长度相等. //axis是纵横比

2021-1-29 美赛前MATLAB的学习笔记(基础、脚本、代数方程、微分方程、矩阵初步、作图基础)相关推荐

  1. 2021-02-02美赛前MATLAB的学习笔记(机器学习(分类、聚类、深度学习))

    机器学习 机器学习是一中工具.方法,通过对机器训练,进而学习到某种规律或者模式,并建立预测未来结果的模型. 机器学习可以分为监督学习和无监督学习 有监督学习方法,是提供答案的,主要包括分类和回归 无监 ...

  2. 高等数学学习笔记——第一百讲——微分方程稳定性初步

    一.问题引入--如何预测种群数量的变化规律?如何控制卫星运行的稳定性? 二.稳定性的概念 1. 一阶微分方程解的变化 2. 一阶微分方程组解的变化 3. 一阶方程的平衡点及稳定性(平衡点.奇点).稳定 ...

  3. 2021年美赛准备(学习笔记) 2016年C题优质基金挑战

    2021年美赛准备(学习笔记) 2016年C题优质基金挑战 2021年美赛准备 2021年美赛准备(学习笔记) 2016年C题优质基金挑战 题目 怎么解决问题 算法的选择 背景 数据处理 数据填充 最 ...

  4. 让多核CPU占用率曲线听你指挥(Windows实现)——《编程之美》1.1学习笔记

    让多核CPU占用率曲线听你指挥--<编程之美>1.1学习笔记 Problem: 写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率.有以下几种情况: ...

  5. 系统辨识理论及MATLAB仿真——学习笔记(1)

    系统辨识理论及MATLAB仿真学习笔记(1) 前言 目录 第1章 绪论 1.1 建立数学模型的基本方法 1.2 系统辨识的定义 1.3 系统辨识的研究目的 1.4 数学模型的分类 1.5 几种常见的数 ...

  6. matlab bwmorph spur,matlab图像处理学习笔记-数学形态与二值图像操作

    matlab图像处理学习笔记-数学形态与二值图像操作 数学形态学主要处理的是二值图像,因为二值图像的处理操作比较简单. 9.1 数学形态学图像处理 基本思想:利用一个称作结构元素(structurin ...

  7. Task02:学习笔记文本预处理;语言模型;循环神经网络基础

    Task02:学习笔记文本预处理:语言模型:循环神经网络基础 文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 ...

  8. Windows驱动开发学习笔记(二)—— 驱动调试内核编程基础

    Windows驱动开发学习笔记(二)-- 驱动调试&内核编程基础 基础知识 驱动调试 PDB(Program Debug Database) WinDbg 加载 PDB 实验:调试 .sys ...

  9. PS学习笔记------运用脚本及自动化批量处理

    PS学习笔记------运用脚本及自动化批量处理 简单脚本运行+自动批处理多图片 简单脚本运行 自动批处理图片 简单脚本运行+自动批处理多图片 本次实现的功能是: 1.运用脚本在ps中将图片的文档名称 ...

最新文章

  1. 用ILSpy查看Session.SessionID的生成算法
  2. 服务器邮箱备份文件在哪里,如何轻松将数据文件备份到电子邮箱?
  3. python项目归纳总结-这4个Python实战项目,让你瞬间读懂Python!
  4. MATLAB实战系列(二十八)-用matlab爬取火车票信息
  5. Ubuntu系统下载地址(Ubuntu、ISO、Ubuntu下载)
  6. a73*2+a53*2指的是什么_篮球内外线是什么意思?篮球外线是什么位置-百科-
  7. 前端学习/资源/工具网站
  8. java求两个时间相差月_java计算两个时间相差几个月
  9. Android之多媒体视频的播放和录制
  10. 来自腾讯的高性能服务器架构思路
  11. PHP单元测试框架 - PHPUnit介绍
  12. android 照片变油画,最近很火照片变油画Glaze软件
  13. 随机生存森林的模型建立和结果解读
  14. JS黄金分割法实现随机漂亮颜色!
  15. 2018 软件学院 AK 杯 题解
  16. Element UI table宽度自适应
  17. 区块链巨头2018:几家欢喜几家愁 |链捕手
  18. [宋史学习] 王全斌功过
  19. MongoDB增删改查基础操作
  20. 聚氯乙烯增韧改性研究新进展

热门文章

  1. express的api接口暴露
  2. c++-tissue_habit-namespace
  3. 问题锦集 | 百度网盘播放视频显示:网络连接失败,请检查您的网络设置并稍后再试
  4. 兰州大学计算机技术专业学位,兰州大学信息科学与工程学院(专业学位)计算机技术保研条件...
  5. x-window简介
  6. python----模块
  7. 网页特效——潘多拉魔盒(.html)
  8. 【新手基础教程】SP-MOD之 TOF测距的使用
  9. 使用Python操作XLS文件(wps中叫et)
  10. Wifi信号强弱判断