1

我正在尝试使用 matlab 使用复合梯形规则计算函数的近似值,然后使用 surf 函数和 bar3 函数显示函数和近似值。问题是,当我尝试绘制函数 surf(x,y,Z) 时,我收到并错误提示尺寸不匹配。

我的问题是,当我的 x、y 和 z 数组的大小不同时,如何让 surf 函数绘制 3D 图。

我试图创建相同大小的 x 和 y 数组的零函数,然后将我的值添加到每个函数中,然后 NaN'ing 额外的 0,但是正如你看到的,我的每个数组都以 0 开头,因此 NaN'ing我在数组中找到零的地方会影响我的图表。而且我仍然得到相同的错误“尺寸不匹配”所以我认为那是因为我的 Z 数组大于我的 x 和 y。

任何帮助,将不胜感激。

我的 x 和 y 的代码是:`

 x = linspace(a,b,h); %h being 11 and breaks up the difference because datapoints a   and b into h number of sub intervals

 y = linspace(c,d,k); %k being 6 and breaks up the difference because data points c and d into k number of sub intervals

Z = zeros(h,k);
for i = 1:1:h      
    for j = 1:1:k
    Z(i,j) = f(x(i),y(j));
    end
end

冲浪(X,Y,Z);`

X

     0    0.3000    0.6000    0.9000    1.2000    1.5000    1.8000    2.1000    2.4000    2.7000    3.0000

是的

     0    0.6286    1.2571    1.8857    2.5143    3.1429

Z

     0         0         0         0         0         0
     0    0.1764    0.2854    0.2852    0.1761   -0.0004
     0    0.3528    0.5707    0.5705    0.3522   -0.0008
     0    0.5292    0.8561    0.8557    0.5283   -0.0011
     0    0.7056    1.1415    1.1410    0.7044   -0.0015
     0    0.8820    1.4268    1.4262    0.8804   -0.0019
     0    1.0584    1.7122    1.7115    1.0565   -0.0023
     0    1.2348    1.9975    1.9967    1.2326   -0.0027
     0    1.4112    2.2829    2.2820    1.4087   -0.0030
     0    1.5876    2.5683    2.5672    1.5848   -0.0034
     0    1.7640    2.8536    2.8525    1.7609   -0.0038

使用 surf 时出错(第 75 行) 数据维度必须一致。

CompositeTrapazoidal>btnSolve_Callback 错误(第 167 行) surf(x,y,Z);

4

1 回答 1

1

试试surf(x,y,Z');(因为x' 的长度应该与Z' 的列数相匹配)

于 2013-04-21T12:23:50.140 回答