3.4CQU数学实验???
`meshgrid` 是一个用于生成网格点坐标的函数。它常用于在二维或三维空间中创建坐标网格,用于可视化和数据处理。
在二维情况下,`meshgrid` 函数接受两个一维数组作为输入,并返回两个二维数组,这两个数组中的元素分别表示了所有可能的点的 x 坐标和 y 坐标。
在三维情况下,`meshgrid` 函数接受三个一维数组作为输入,并返回三个三维数组,这三个数组中的元素分别表示了所有可能的点的 x 坐标、y 坐标和 z 坐标。
这样,通过使用 `meshgrid` 函数生成的网格点坐标,可以方便地进行绘图和计算。
以下是一个使用 `meshgrid` 函数生成二维网格点坐标的示例:
```python
import numpy as np
x = np.linspace(0, 1, 5) # x 坐标的一维数组
y = np.linspace(0, 1, 3) # y 坐标的一维数组
X, Y = np.meshgrid(x, y) # 生成二维网格点坐标
print(X)
print(Y)
```
输出结果为:
```
[[0. 0.25 0.5 0.75 1. ]
[0. 0.25 0.5 0.75 1. ]
[0. 0.25 0.5 0.75 1. ]]
[[0. 0. 0. 0. 0. ]
[0.5 0.5 0.5 0.5 0.5]
[1. 1. 1. 1. 1. ]]
```
这个例子中,`meshgrid` 函数根据输入的 x 和 y 数组生成了一个 3x5 的网格,其中每个元素表示一个点的 x 和 y 坐标。
meshgrid函数是MATLAB中用于生成网格采样点数的函数,通常进行2D、3D图形的绘制。
1、【X,Y】 = meshgrid(x,y) :基于向量x和y中包含的坐标返回二维网格坐标。X是一个矩阵,每一行是x的一个副本,Y也是一个矩阵,每一列是y的一个副本。坐标X和Y表示的网格有length(y)个行和length(x)个列。
2 、[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x)相同,返回网格大小为length(x)*length(x)的方形网格矩阵。
3、 [X,Y,Z] = meshgrid(x,y,z),返回由向量x,y,z定义的三维网格坐标,X,Y和Z表示的网格大小为length(x)*length(y)*length(z)。
就是对于X数组,每一行是X的副本,一共有Y行,
对于Y数组,每一列是Y的副本,一共有X列
为什么要使用meshgrid?
matlab使用矩阵的方式进行运算,对于2D而言,如果采样10个点(指x,y轴),那么对于x=第一个采样点,反映到矩阵就是10个,即不管y是哪个值,x的第一采样点保持不变;对y是同理。因此,2D产生的x和y都是两维矩阵。
就是要保证,在X数组里,从Y方向上看过去都一样,就Y不影响X分布;在Y数组里,从X方向上看过去都一样,X不影响Y分布
做曲面需要用MESH,或者SURF,而曲线就用PLOT
就是说SIZE先返回行,再返回列,返回的是两个数据
linspace最后一个参数返回的就是最后的大小
t =-3:0.1:3
ezplot("cos(t)","sin(t)");
axis([-2 2 -2 2]);
hold on
m0 = -1;
n0 = 0;
for i = t m = cos(i);n = sin(i);x0 = (n+m*m/n-n/m)/(n/m+m/n);
% y0 = (n/m)*(n/m+m*m/n+n)/(n/m+m/n)+m*m/n+n;y0 = n/m*x0+n/m;x1 = [x0,-1]y1 = n/m*x1+n/m;plot(x1,y1);hold on x2 = [m,x0];y2 = -1*m/n*x2+m*m/n+n;plot(x2,y2);hold onif m0 ~= -1plot([m0 x0],[n0 y0]);endm0 = x0;n0 = y0;
end
grid on;