1

複合台形規則を使用して関数の近似を計算し、surf 関数と bar3 関数を使用して関数と近似を表示するために matlab を使用しようとしています。問題は、関数 surf(x,y,Z) をプロットしようとすると、次元が一致しないというエラーが表示されることです。

私の質問は、x、y、および z 配列のサイズが異なる場合に、3D グラフをプロットするために surf 関数を取得する方法です。

同じサイズの x 配列と y 配列のゼロ関数を作成し、それぞれに値を追加してから、余分な 0 を NaN しようとしましたが、各配列が 0 で始まるのを見ると、NaN になります。配列内のゼロを見つけると、グラフ プロットに影響します。さらに、同じエラー「寸法の不一致」が引き続き発生するため、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); `

バツ

     0    0.3000    0.6000    0.9000    1.2000    1.5000    1.8000    2.1000    2.4000    2.7000    3.0000

y

     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 に答える