Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab网格步长_Matlab_Plot - Fatal编程技术网

Matlab网格步长

Matlab网格步长,matlab,plot,Matlab,Plot,我正在Matlab中开发一个工具,使用meshgrid x= -a:a/101:a; y= -a:a/101:a; [X,Y] = meshgrid(x,y); 定义计算字段E的点。因此,我有E(X,Y),这样我就有了,对于网格中的一个特定点,它关联了一个字段的值。我有一个计算所有点的E的函数 E = compute_field(X,Y) 然后我在另一个函数中对这个字段进行一些运算(求和和和乘法),这会给我两个结果,表示两个方向上所有可能的错误 [ERR_H,ERR_V] =

我正在Matlab中开发一个工具,使用
meshgrid

    x= -a:a/101:a;
    y= -a:a/101:a;
[X,Y] = meshgrid(x,y);
定义计算字段
E
的点。因此,我有
E(X,Y)
,这样我就有了,对于网格中的一个特定点,它关联了一个字段的值。我有一个计算所有点的E的函数

E = compute_field(X,Y)
然后我在另一个函数中对这个字段进行一些运算(求和和和乘法),这会给我两个结果,表示两个方向上所有可能的错误

[ERR_H,ERR_V] = ideal_computations(E,X,Y)
到目前为止没有问题

在我的工具的下一步中,我决定施加两个点x,y来提取这个字段的值,以便使
E(x,y)
成为标量而不是像以前那样的矩阵

e = compute_field(x,y)
我做的和我以前做的完全一样的和和和乘法

[ERR_H,ERR_V] = real_computations(e,x,y)
目前,两个函数
理想计算
实际计算
完全相同。 然后我检查
E(x,y)
E(x,y)
计算两者之间的最小值并提取坐标,问题就在这里

[x1_est,x2_est] = compute_error(err_h,err_v,X,Y,ERR_H,ERR_V)
row = (size(ERR_H,1)+1)/2;
col = (size(ERR_V,2)+1)/2;

[~,m] = min(abs(ERR_H(row,:)-err_h));
[~,n] = min(abs(ERR_V(:,col)-err_v));

x1_est = X(n,m);
x2_est = Y(n,m);
很可能这对夫妇(X,Y)没有完美匹配的步骤,我明白了

这可能发生在我计算最小值时,结果不完全为零,因此存在这种不匹配

例如,我将点
(0.0651,0.0651)
。此功能用于检查该点或接近
0.0651
的点的位置。查看矩阵,我发现最接近的值是
0.065076334365630
,这并不完全是
0.0651
。为了得到min=0,我应该在矩阵内部设置值0.0651,在这种情况下,我将使两个点重叠。 我不想增加步长,因为可能甚至可以使用这个字段,但可能不能使用另一个字段,而且我将有一个非常大的矩阵,需要进行大量计算。
我怎样才能解决这个问题?除了使用meshgrid,还有其他方法可以做到这一点吗?

如果不显示除调用
meshgrid
之外的任何代码,很难说,但是有两种想法:
interp2
或者通过调用
E
来生成函数,让它根据您想要的
(x,y)
精确计算值。我添加了一些内容。我不想进入太多的细节,因为有很多功能,我不关心在这个级别。问题在于网格,我想如何在2D绘图中使用interp2?上的文档中有很多使用示例。