我用两种不同的方法进行了计算。对于那些计算,我有两个参数:x和y
最后,我计算了两种方法之间的%ERROR,用于每种变化。 现在我想根据结果创建一个3D表面图:
x -> on x axis
y -> on y axis
Error -> on z axis
以下是数据样本:
A = [
-0.1111 1.267 9.45680081826912
-0.1111 2.6 212.361735695025
-0.25 1.533 40.5729362609655
-0.25 2.867 601.253624894196
-0.4286 1 0.12116749607863
-0.4286 3.4 79.6948438921078
-0.6667 2.067 33.3495544017519
-0.6667 3.667 141.774875517481
-1 2.6 -0.0399171449531781
0.09091 1.533 163.7083541414 ];
但是,当我尝试用冲浪功能绘制它时:
x = A(:,1);
y = A(:,2);
z = A(:,3);
surf(x,y,z)
,我收到一个错误:
Error using surf (line 75)
Z must be a matrix, not a scalar or vector
Error in ddd (line 27)
surf(x,y,z)
您能否帮助我使用能够以冲浪功能可接受的格式重构数据的代码?
P.S。 - 我正在尝试用我的第一次尝试编写一些示例代码。我会在到达某个地方后立即发布。
答案 0 :(得分:7)
surf
函数需要一个this.route('section', {path:':section_name/sign-up'});
- 网格值作为输入。然而,您的数据只是三个向量,有一些组合,而不是一个完整的网格。如文档中所述,meshgrid
函数通常有助于创建此类网格矩阵。使用X,Y
功能选择unique
和x
中的所有唯一值,并创建所有可能组合的矩阵:
y
要创建适合[X,Y] = meshgrid(unique(x),unique(y));
网格的Z
矩阵,griddata
函数会有所帮助:
[X,Y]
现在,您可以使用网格矩阵作为输入调用Z = griddata(x,y,z,X,Y);
:
surf
答案 1 :(得分:0)
为第一列和第二列创建网格,并使用您的公式计算Z. 在MATLAB中帮助meshgrid