- これが試したコードです
- ここでこんなエラーがでます
- 実行はできるがこの表示が意図と違う
データが正方行列ではない場合の3Dグラフの作成について
10 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
rei shimizu
el 29 de Oct. de 2019
Comentada: michio
el 31 de Oct. de 2019
卒業研究で急遽matlabを使用することとなったため、matlabの知識に関してとても疎いです。
76×3行列の3Dグラフ(surfなど)の作成方法について教えていただきたいです。
1列ずつ3つのデータに分けて、それをそれぞれ正方行列に変換してからsurf関数を使うのかと考えているのですがどうも上手くいきません。
4 comentarios
Kazuya
el 29 de Oct. de 2019
できればデータはファイル(csv, Excel, mat など) の添付で、コードとエラーメッセージはコメント蘭にコピペで投稿頂けると助かります。
実際にMATLABで試してみた方が速いのですが、画像から情報を吸い出すのは多少手間でして。
Respuesta aceptada
michio
el 29 de Oct. de 2019
matlab質問2.PNG のコードの中で、
x = A(:,1);
y = A(:,1);
z = A(:,1);
となっているところ、
x = A(:,1);
y = A(:,2);
z = A(:,3);
に変えるとよいように思います。
適当なダミーデータで実行してみると、
x = rand(100,1);
y = rand(100,1);
z = sin(2*pi*x)+cos(2*pi*y);
xlin = linspace(min(x),max(x),76);
ylin = linspace(min(y),max(y),76);
[X,Y] = meshgrid(xlin,ylin);
Z = griddata(x,y,z,X,Y,'cubic');
surf(X,Y,Z)
こんな感じです。griddata に 'cubic' と入れているのは、データの補間方法を指定しています。何も指定しなければ 'linear' ということで、線形補間を行います。
7 comentarios
michio
el 31 de Oct. de 2019
そうですね。。
xlin6 = linspace(min(x6),max(x6),76);
ylin6 = linspace(min(y6),max(y6),76);
[X6,Y6] = meshgrid(xlin6,ylin6);
の部分、xlin6, ylin6 それぞれ個別にみるとデータに存在するデータ点ですが、2次元で見るとデータに含まれない部分も出てくると思います。'v4' 以外の手法だと、その存在しない部分が NaN で返されているはずです。
Más respuestas (0)
Ver también
Categorías
Más información sobre グラフィックス出力のターゲットの指定 en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!