【问题标题】:MATLAB - Surf Plot data structureMATLAB - 冲浪图数据结构
【发布时间】:2015-06-02 13:05:22
【问题描述】:

我用 2 种不同的方法进行了计算。对于这些计算,我改变了 2 个参数: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 ];

但是,当我尝试使用 surf 函数绘制它时:

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)

您能帮我编写一个代码,以 surf 函数可接受的格式重构数据吗?

附: - 我目前正在尝试第一次尝试编写一些示例代码。我一到某个地方就会发布它。

【问题讨论】:

    标签: matlab plot


    【解决方案1】:

    surf 函数需要X,Y 值的网格作为输入。但是,您的数据只是具有某些组合的三个向量,而不是完整的网格。如文档中所述,meshgrid 函数通常有助于创建此类网格矩阵。使用unique 函数选择xy 中的所有唯一值,并创建所有可能组合的矩阵:

    [X,Y] = meshgrid(unique(x),unique(y));
    

    要创建适合[X,Y] 网格的Z 矩阵,griddata 函数很有帮助:

    Z = griddata(x,y,z,X,Y);
    

    现在您可以调用surf,并将网格矩阵作为输入:

    surf(X,Y,Z);
    

    【讨论】:

      【解决方案2】:

      为第一列和第二列创建网格并使用您的公式计算 Z。 帮助 MATLAB 中的网格网格

      【讨论】:

      • 那是行不通的,因为有一个单独的软件可以进行计算并运行它需要几天时间。我不能简单地重新运行计算。我需要重新排序数据。
      • 在这种情况下,我认为不可能得到曲面图,因为误差取决于变量 x 和 y。曲面图需要矩阵而不是向量。其他选项可以是 scatter3 或 barplot。
      • 您是正确的,因为曲面图需要一个矩阵,但我不同意它不能完成。 @hbaderts 的回答完美地解释了它。
      猜你喜欢
      • 1970-01-01
      • 2014-08-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多