MATLAB最简单教程

本教程只关注使用重点,快速入门使用MATLAB。


界面简单认识


这个部分很容易,多去点点,看看就知道了。

常用的命令

  • clc:清除命令行的命令,相当于cmd的cls
  • clear all:清除当前工作区的所有变量
  • clear variable:清除指定的变量
  • whos:查看当前工作区所有的变量
  • ls:查看当前的文件夹和文件信息
  • cd:进入文件夹

变量

  • 名字
  • 大小
  • 类型

查看方法:

 whos variable

单独查看大小,类型信息

size(variable)
class(variable)

例子(命令行):


矩阵和数组

MATLAB 是“matrix laboratory”的缩写形式。MATLAB® 主要用于处理整个的矩阵和数组,而其他编程语言大多逐个处理数值。

所有 MATLAB 变量都是多维数组,与数据类型无关。矩阵是指通常用来进行线性代数运算的二维数组。

创建方法

  • 直接创建(使用中括号来创建,同一行的用空格分隔,不同行用分号分隔)
  • 函数创建(ones,zeros,rand等函数)

一些操作

串联

在这里插入图片描述
使用 [a b] 可以达到相同的效果。

在这里插入图片描述

向量化操作(类似于python的numpy的广播机制)

MATLAB 允许您使用单一的算术运算符或函数来处理矩阵中的所有值。

在这里插入图片描述
注意 a * b 默认为进行矩阵乘法。

在这里插入图片描述

索引(一个其实很复杂的东西)

基本的三种形式

  • A(x,y)
  • A(x)
  • A(start:step:end)

在这里插入图片描述
注意: step默认为1,不像其他编程语言,这里的[start:end]是包括end的。如果只有一个冒号,那么表明选择全部。

一些个人的理解:类似于python的numpy,这里的切片也是一样的,冒号运算符返回的是一个矩阵。

在这里插入图片描述


保存文件

退出 MATLAB 后,工作区变量不会保留。使用 save 命令保存数据以供将来使用,

 save myfile.mat

通过保存,系统会使用 .mat 扩展名将工作区保存在当前工作文件夹中一个名为 MAT 文件的压缩文件中。

要清除工作区中的所有变量,请使用 clear 命令。

使用 load 将 MAT 文件中的数据还原到工作区。

 load myfile.mat

文本和字符

文本string

  • 双引号创建。
  • 可以使用 + 运算符拼接

在这里插入图片描述
注意:如果文本包含双引号,请在定义中使用两个双引号。

字符数组

  • 单引号创建
  • 中括号拼接
  • 文本输出:disp(text)

在这里插入图片描述


函数调用(不会就查,多用就熟练了)


简单的二维图和三维图

二维图

x = linspace(0, 2*pi)  // 创建 0~2pi的100个向量值
y = sin(x)  // 调用函数
plot(x,y)  // 绘图

xlabel("x")   // x轴的标签
title("Plot of the sin, cos function")  // 图的标题

hold on      

y2 = cos(x)  // 函数2调用
plot(x,y2,":")  // 绘图
legend("sin", "cos")

hold off

在这里插入图片描述

注意:为第一幅绘图定义的标题和标签不再被用于当前的图窗窗口中。默认情况下,每次调用绘图函数、重置坐标区及其他元素以准备新绘图时,MATLAB® 都会清空图窗。要将绘图添加到现有图窗中,请使用 hold on。在使用 hold off 或关闭窗口之前,当前图窗窗口中会显示所有绘图。

三维图

三维图通常显示一个由带两个变量的函数 z = f ( x , y ) z=f(x,y) z=f(x,y) 定义的曲面图。例如,对于给定的行向量和列向量 x x x y y y,每个向量包含 [ − 2 , 2 ] [-2,2] [2,2] 范围内的 20 个点,计算

z = x e − x 2 − y 2 z=xe^{-x^2-y^2} z=xex2y2

x = linspace(-2, 2, 100) // 创建线性向量 取值为 [-2,2] 的100个数
y = x' // 转置

z = x .* exp(-x .^ 2 - y .^ 2) // 函数

// 两种绘图函数
surf(x,y,z) 
mesh(x,y,z)

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_51156601/article/details/126015864