2017-01-10 13 views
0

私は2つの列ベクトルと、一貫した寸法を持つ行列を持っています:size(x(:) = 3001 x 1、size(y):) = 28 x 1、size(z)= 3001 X 28.表面フィッティングによるhorzcatエラー

私はラインで表面フィットやろうとしている:。

sf = fit([x, y] , z, 'linearinterp'); 

をして(連結された行列の次元が一致しない)horzcatエラーを取得もちろん、xとyは持っています私は、MATLAB R2015aの表面フィッティングに正しい構文を使用したと信じています。ツールボックスを使用してサーフェスにうまくフィットしました。

+0

そうすることは、28のx 3001行列を作成します。フィット関数を2つの列ベクトルに渡すべきではありませんか? – user3648565

答えて

1

meshgridが必要な場合があります。 zと同じ額のxyが必要です。彼らは定期的に(私は他のあなたは情報が不足している、と仮定)間隔を置いて配置されている場合

、そしてmeshgridはとしてそれを解決します:

[xmesh, ymesh]=meshgrid(x,y) 
sf = fit([xmeshx(:), ymesh(:)] , z(:), 'linearinterp'); 
+0

これはエラーには至りませんでしたが、正しいフィットには至りませんでした。回避策は、ツールボックスからフィットを保存することです。フィットは、zがサーフェスの正方行列であることを必要としますか? – user3648565

+0

'fit'は、フィットするために点' p = [x、y、z]の集合を必要とします。つまり、 'z'の各値は' x'と 'y'を持つ必要があります –

関連する問題