网格图与曲面图的绘制非常相似,调用格式也近乎一致。绘图之前先要形成字变量的格点矩阵。以下汇总了几种matlab中创建网格的几个函数,供大家参考~~~~

先点赞再看,不然都是流氓

目录

  • linspace:生成线性间距向量
    • 语法
    • 说明
    • 示例
      • 等间距数字向量
      • 包含指定数量的值的向量
      • 由均匀分布的复数组成的向量
    • 输入参数
      • x1,x2 - 点区间
      • n - 点的数目
  • logspace:生成对数间距向量
    • 语法
    • 说明
    • 示例
      • 由对数间距的数值组成的向量
      • 包含指定数量的值的向量
      • 由对数间距的复数组成的向量
    • 输入参数
      • a - 第一个边界
      • b - 第二个边界
      • n - 点的数目
  • freqspace:频率响应的频率间距
    • 语法
    • 说明
  • meshgrid:二维和三维网格
    • 语法
    • 说明
    • 示例
      • 二维网格
      • 绘制曲面图
      • 三维网格
    • 输入参数
      • x - 点的 x 坐标
      • y - 点的 y 坐标
      • z - 点的 z 坐标
    • 输出参数
      • X - 网格上的 x 坐标
      • Y - 网格上的 y 坐标
      • Z - 网格上的 z 坐标
  • ndgrid:N 维空间中的矩形网格
    • 语法
    • 说明
    • 示例
      • 创建二维网格
      • 在网格域上计算函数
    • 插入数据
    • 输入参数
      • x1,x2,...,xn - 网格向量(以单独参数指定)
      • xg - 所有维度的网格向量
    • 输出参数
  • 资源传送门
  • 「❤️ 感谢大家」

linspace:生成线性间距向量

语法

y = linspace(x1,x2)
y = linspace(x1,x2,n)

说明

y = linspace(x1,x2) 返回包含 x1 和 x2 之间的 100 个等间距点的行向量。

y = linspace(x1,x2,n) 生成 n 个点。这些点的间距为 (x2-x1)/(n-1)。

linspace类似冒号运算符“:”,但可以直接控制点数并始终包括端点。

“linspace”名称中的“lin”指示生成线性间距值而不是同级函数logspace,后者会生成对数间距值。

示例

等间距数字向量

创建一个由区间 [-5,5] 中的 100 个等距点组成的向量。

y = linspace(-5,5);

包含指定数量的值的向量

创建一个由区间 [-5,5] 中的 7 个等距点组成的向量。

>> y1 = linspace(-5,5,7)
>
y1 = 1×7-5.0000   -3.3333   -1.6667         0    1.6667    3.3333    5.0000

由均匀分布的复数组成的向量

创建一个复数向量,包含介于 1+2i 和 10+10i 之间的 8 个等距点。

>> y = linspace(1+2i,10+10i,8)
>
y = 1×8 complex1.0000 + 2.0000i   2.2857 + 3.1429i   3.5714 + 4.2857i   4.8571 + 5.4286i   6.1429 + 6.5714i   7.4286 + 7.7143i   8.7143 + 8.8571i  10.0000 +10.0000i

输入参数

x1,x2 - 点区间

点区间,指定为数值标量对组。x1 和 x2 定义 linspace 生成点的区间。x1 和 x2 可以是实数或复数,x2 可以大于或小于 x1。如果 x2 比 x1 小,则向量包含递减的值。

数据类型: single | double | datetime | duration
复数支持:

n - 点的数目

100 (默认) | 实数标量
点的数目,指定为实数标量。

如果 n 为 1,则 linspace 返回 x2。

如果 n 为零或负数,则 linspace 返回 1×0 空矩阵。

如果 n 不是整数,则 linspace 向下舍入并返回 floor(n) 个点。

logspace:生成对数间距向量

语法

y = logspace(a,b)
y = logspace(a,b,n)
y = logspace(a,pi)
y = logspace(a,pi,n)

说明

y = logspace(a,b) 生成一个由在 10 a 和 10 b(10 的 N 次幂)之间的 50 个对数间距点组成的行向量 y。logspace 函数对于创建频率向量特别有用。该函数是 linspace 和“:”运算符的对数等价函数。

y = logspace(a,b,n) 在 10 的幂 10 a 和 10 b(10 的 N 次幂)之间生成 n 个点。

y = logspace(a,pi) 在 10 ^ a 和 pi 之间生成 50 个点,这对于在区间 [10^a,pi] 中创建对数间距频率的数字信号处理很有用。

y = logspace(a,pi,n) 在 10^a 和 pi 之间生成 n 个点。

示例

由对数间距的数值组成的向量

创建一个由区间 [101,105] 内的 50 个对数间距点组成的向量。

y = logspace(1,5);

包含指定数量的值的向量

创建一个由区间 [101,105] 内的 7 个对数间距点组成的向量。

>> y1 = logspace(1,5,7)
>
y1 = 1×7
105 ×0.0001    0.0005    0.0022    0.0100    0.0464    0.2154    1.0000

由对数间距的复数组成的向量

创建一个由 10(1+2i)和 10(5+5i)之间的 8 个对数间距点组成的复数向量。

>> y = logspace(1+2i,5+5i,8)
y = 1×8 complex104 ×-0.0001 - 0.0010i   0.0029 - 0.0024i   0.0133 + 0.0040i   0.0147 + 0.0497i  -0.1242 + 0.1479i  -0.7150 - 0.0822i  -1.2137 - 2.3924i   4.9458 - 8.6913i

输入参数

a - 第一个边界

第一个边界,指定为数值标量。a 参数定义 logspace 生成的点所在区间的一个边界。a 可以是实数或复数,另一个边界 b 可以大于或小于 a。如果 b 比 a 小,则向量包含递减的值。

数据类型: single | double
复数支持:

b - 第二个边界

第二个边界,指定为数值标量。b 参数定义 logspace 生成的点所在区间的一个边界。b 可以是实数或复数,b 可以大于或小于另一个边界 a。如果 b 比 a 小,则向量包含递减的值。

数据类型: single | double
复数支持:

n - 点的数目

50 (默认) | 实数标量
点的数目,指定为实数标量

如果 n 为 1,则 logspace 返回 10b

如果 n 为零或负数,则 logspace 返回一个空的行向量。

如果 n 不是整数,则 logspace 将 n 向下舍入并返回 floor(n) 个点。

freqspace:频率响应的频率间距

语法

[f1,f2] = freqspace(n)
[f1,f2] = freqspace([m n])
[x1,y1] = freqspace(...,'meshgrid')
f = freqspace(N)
f = freqspace(N,'whole')

说明

freqspace 返回等距频率响应的暗含频率范围。当为各种一维和二维应用程序创建所需频率响应时,freqspace 特别有用。

[f1,f2] = freqspace(n) 为 n×n 矩阵返回二维频率向量 f1 和 f2。

对奇数 n,f1 和 f2 为 [-n+1:2:n-1]/n。对偶数 n,f1 和 f2 为 [-n:2:n-2]/n。

[f1,f2] = freqspace([m n]) 为 m×n 矩阵返回二维频率向量 f1 和 f2。

[x1,y1] = freqspace(...,'meshgrid') 等效于

[f1,f2] = freqspace(...);
[x1,y1] = meshgrid(f1,f2);

f = freqspace(N) 返回一维频率向量 f 并假定围绕单位圆有 N 个等距点。对于奇数或偶数 N,f 为 (0:2/N:1)。对于偶数 N,freqspace 将返回 (N+2)/2 个点。对于奇数 N,它将返回 (N+1)/2 个点。

f = freqspace(N,'whole') 返回围绕整个单位圆的 N 个等距点。在本示例中,f 为 0:2/N:2*(N-1)/N。

meshgrid:二维和三维网格

语法

[X,Y] = meshgrid(x,y)
[X,Y] = meshgrid(x)
[X,Y,Z] = meshgrid(x,y,z)
[X,Y,Z] = meshgrid(x)

说明

[X,Y] = meshgrid(x,y) 基于向量 x 和 y 中包含的坐标返回二维网格坐标。X 是一个矩阵,每一行是 x 的一个副本;Y 也是一个矩阵,每一列是 y 的一个副本。坐标 X 和 Y 表示的网格有 length(y) 个行和 length(x) 个列。

[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x) 相同,并返回网格大小为 length(x)×length(x) 的方形网格坐标。

[X,Y,Z] = meshgrid(x,y,z) 返回由向量 x、y 和 z 定义的三维网格坐标。X、Y 和 Z 表示的网格的大小为 length(y)×length(x)×length(z)。

[X,Y,Z] = meshgrid(x) 与 [X,Y,Z] = meshgrid(x,x,x) 相同,并返回网格大小为 length(x)×length(x)×length(x) 的三维网格坐标。

示例

二维网格

使用向量 x 定义的 x 坐标和向量 y 定义的 y 坐标创建二维网格坐标。

>> x = 1:3;
>> y = 1:5;
>> [X,Y] = meshgrid(x,y)
>
X = 5×31     2     31     2     31     2     31     2     31     2     3Y = 5×31     1     12     2     23     3     34     4     45     5     5

在二维网格上计算表达式 x2+y2

>> X.^2 + Y.^2
>
ans = 5×32     5    105     8    1310    13    1817    20    2526    29    34

绘制曲面图

使用均匀分布的 x 坐标和 y 坐标在区间 [-2,2] 内创建二维网格。

x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);

在二维网格上计算并绘制函数 f(x,y)=xe^ (−x 2−y2)。

F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)

从 R2016b 开始,操作网格之前并不总是需要先创建网格。例如,计算表达式 xe^ (−x2−y2) 将隐式扩展向量 x 和 y。

surf(x,y,x.*exp(-x.^2-(y').^2))

三维网格

在区间 [0,6] 内使用定义的 x、y 和 z 坐标创建三维网格坐标,并计算表达式 x2+y2+z2

x = 0:2:6;
y = 0:1:6;
z = 0:3:6;
[X,Y,Z] = meshgrid(x,y,z);
F = X.^2 + Y.^2 + Z.^2;

确定网格的大小。三个坐标向量具有不同的长度,构成一个网格点矩形框。

>> gridsize = size(F)
>
gridsize = 1×37     4     3

使用单输入语法,基于 x 中定义的坐标生成均匀分布的三维网格。新网格构成一个网格点正方体。

>> [X,Y,Z] = meshgrid(x);
>> G = X.^2 + Y.^2 + Z.^2;
>> gridsize = size(G)
>
gridsize = 1×34     4     4

输入参数

x - 点的 x 坐标

点的 x 坐标,指定为向量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y - 点的 y 坐标

点的 y 坐标,指定为向量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

z - 点的 z 坐标

点的 z 坐标,指定为向量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

输出参数

X - 网格上的 x 坐标

二维或三维数组
网格上的 x 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。

Y - 网格上的 y 坐标

二维或三维数组
网格上的 y 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。

Z - 网格上的 z 坐标

三维数组
网格上的 z 坐标,以三维数组形式返回。

ndgrid:N 维空间中的矩形网格

语法

[X1,X2,...,Xn] = ndgrid(x1,x2,...,xn)
[X1,X2,...,Xn] = ndgrid(xg)

说明

[X1,X2,...,Xn] = ndgrid(x1,x2,...,xn) 复制网格向量 x1,x2,…,xn 以生成 n 维满网格。

[X1,X2,...,Xn] = ndgrid(xg) 指定对所有维度使用单一网格向量 xg。您指定的输出参数的数目决定输出的维度 n。

示例

创建二维网格

根据向量 [1 3 5 7 9 11 13 15 17 19] 和 [2 4 6 8 10 12] 创建一个二维网格。

>> [X,Y] = ndgrid(1:2:19,2:2:12)
>
X = 10×61     1     1     1     1     13     3     3     3     3     35     5     5     5     5     57     7     7     7     7     79     9     9     9     9     911    11    11    11    11    1113    13    13    13    13    1315    15    15    15    15    1517    17    17    17    17    1719    19    19    19    19    19Y = 10×62     4     6     8    10    122     4     6     8    10    122     4     6     8    10    122     4     6     8    10    122     4     6     8    10    122     4     6     8    10    122     4     6     8    10    122     4     6     8    10    122     4     6     8    10    122     4     6     8    10    12

在网格域上计算函数

计算并绘制函数

在网格域

−2<x1<2 和 −2<x2<2。

创建一个由域值构成的网格。

[X1,X2] = ndgrid(-2:.2:2);

在域上计算函数。

Z = X1 .* exp(-X1.^2 - X2.^2);

生成函数的网格图。

mesh(X1,X2,Z)

在 R2016b 及更高版本中,此任务不需要使用 ndgrid。您可以对这些命令使用隐式扩展来构建网格:

x = -2:.2:2;Z1 = x.' .* exp(-(x.').^2 - x.^2);

插入数据

创建一个二维网格并计算网格上的一些函数值。在指定的值之间插值以细化网格。

在范围 [−5,5] 内创建 (x,y) 粗网格。

[X,Y] = ndgrid(-5:0.5:5);

计算网格上的一些函数值并绘制函数图。

f = sin(X.^2) * cos(Y.^2);
surf(X,Y,f)

使用更精细的网格在点之间插值,并绘制结果图。

[X1,Y1] = ndgrid(-5:0.125:5);
F = interpn(X,Y,f,X1,Y1,'spline');
surf(X1,Y1,F)

输入参数

x1,x2,…,xn - 网格向量(以单独参数指定)

网格向量,指定为包含每个维度的网格坐标的向量。网格向量隐式定义了网格。例如在二维空间中:

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
复数支持: 是

xg - 所有维度的网格向量

所有维度的网格向量,指定为包含网格坐标的向量。ndgrid 使用 xg 作为每个维度的网格向量。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
复数支持: 是

输出参数

X1,X2,…,Xn - 完整网格表示
完整网格表示,以单独的数组形式返回。对于每个输出数组 Xi,第 i 维包含网格向量 xi 的副本。

资源传送门

  • 关注【做一个柔情的程序猿】公众号
  • 在【做一个柔情的程序猿】公众号后台回复 【python资料】【2020秋招】 即可获取相应的惊喜哦!

「❤️ 感谢大家」

  • 点赞支持下吧,让更多的人也能看到这篇内容(收藏不点赞,都是耍流氓 -_-)
  • 欢迎在留言区与我分享你的想法,也欢迎你在留言区记录你的思考过程。

MATLAB创建网格函数汇编相关推荐

  1. MATLAB创建符号变量和符号表达式

    MATLAB创建符号变量和符号表达式 MATLAB符号运算处理的主要对象是符号或符号表达式,为此要使用一种新的数据类型-符号变量.符号表达式的创建可由符号''或sym函数来完成,sym一次只能创建一个 ...

  2. matlab 动态存储图片,利用matlab创建动态图并保存为AVI格式

    利用matlab创建动态图并保存为AVI格式. MATLAB中,创建电影动画的过程分为以下四步: step1:调用moviein函数对内存进行初始化(该步骤在Matlab5.3以上均可省略),创建一个 ...

  3. matlab 创建同型矩阵_仅在第1部分之间的海洋中探索同型图

    matlab 创建同型矩阵 同型的教训-第1部分 (Lessons of Isotype - PART 1) There's much to be told in the story of the I ...

  4. matlab程序 如何使用,如何使用MATLAB创建一个最简单的程序

    <如何使用MATLAB创建一个最简单的程序>由会员分享,可在线阅读,更多相关<如何使用MATLAB创建一个最简单的程序(4页珍藏版)>请在人人文库网上搜索. 1.如何使用MAT ...

  5. matlab建立一个三维矩阵,matlab创建三维矩阵

    <matlab创建三维矩阵>由会员分享,可在线阅读,更多相关<matlab创建三维矩阵(6页珍藏版)>请在人人文库网上搜索. 1.创建三维矩阵的几种方法一下标法1.三维矩阵的创 ...

  6. matlab创建三维数组的三种方法

    在Matlab中习惯性的会将二维数组中的第一维称为"行"第二维称为"列",而对于三维数组的第三位则是习惯性的称为"页".在Matlab中将三 ...

  7. matlab一维数组截取,Matlab创建一维数组的具体操作讲解

    原创Matlab创建一维数组的具体操作讲解 编辑:小葫芦 来源:PC下载网时间:2019-12-25 11:54:41 最近不少网友表示自己刚刚入手Matlab软件,还不会创建一维数组,而下面这篇文章 ...

  8. matlab如何打开历史纪录,Matlab创建有价值历史纪录(完整版)

    [转载] Matlab创建有价值历史纪录(完整版) % Matlab创建有价值历史纪录(完整版) % "%"为注释符 % MATLAB % MATLAB是一种科学计算语言.它集成了 ...

  9. Matlab 创建文件夹

    Matlab 创建文件夹,文件命名 在打开一个系统盘时,利用命令 cd '盘名:' 命令创建 如 cd 'D:' 打开系统盘下的文件夹时 用 cd 'C:\Program Files\MATLAB\R ...

最新文章

  1. XMLHelper.cs
  2. 大数据遇上大型机 结果会如何?
  3. MongoDB和Java(4):Spring Data整合MongoDB(XML配置)
  4. 小鑫の日常系列故事(十)——排名次_JAVA
  5. 信息学奥赛一本通(1039:判断数正负)
  6. asp.net文本编辑器FCKeditor使用方法详解 - 橙色大地 - 博客园
  7. 深入浅出学Spring Data JPA
  8. php web表格导出,javascript将web表格导出成excel
  9. 报错Caused by: org.hibernate.AnnotationException: No identifier specified for entity:
  10. bootstrap16-上下文表格布局
  11. 打开html文件显示undefined,undefined是什么?电脑网页出现undefined时如何解决?
  12. 韩语输入法,了解一下
  13. c#:判断一个数组元素中否有重复元素
  14. Windows使用shipyard
  15. AUI 滚动视图使用
  16. dell 2u服务器型号,DELL服务器规格参数
  17. 基础数论算法(4) 中国剩余定理
  18. java数据结构--hashset
  19. 武僧一龙狂殴韩国拳王 用中国功夫醉拳轻松赢战
  20. android环境监测,基于Wi―Fi和Android家居环境监测与实现

热门文章

  1. SVG实现超酷素描动画
  2. 零基础学UI设计要学多久?
  3. 图8——判断有向图中是否有根
  4. 因子分析做bartletts球状验证和KMO验证时,数据报‘float‘ object has no attribute ‘shape‘错误
  5. linux 基准测试,linux 性能测试之基准测试用具
  6. merge into 的用法
  7. 房卡棋牌分析系列之微信登录
  8. 有理有据地展望未来 Web 开发体验
  9. JavaBean输入圆的半径,求圆的面积和周长
  10. 熵(entropy)到底是什么?科普