csvファイルから3次元のグラフをsurfでつくりましたが任意の点を強調させるためにマーカーなど利用したいです。
23 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Matlab初心者です。
n行3列のデータがcsvファイルにあります。こちらをreadmatrixでインポートした後、1列目をx軸、2列目をy軸、3列目をz軸としてsurf関数で3次元のグラフを作りました。
しかしそのグラフ上で任意の点(例えば7行目の3列目、すなわちx軸に応じたz軸の値)を強調してグラフ上に表したいのですが方法がわかりません。csvファイル、表示されたグラフ、コードを貼っておきます。(ちなみにcsvファイルの数値は私が適当に決めたものです。
ご回答のほどよろしくお願い致します。
b = readmatrix('Book7.csv');
figure(1)
x = [b(:,1)]
y = [b(:,2)]
z = [b(:,3)]
xlin = linspace(0,8,18);
ylin = linspace(0,5,18);
[X,Y] = meshgrid(xlin, ylin);
Z = griddata(x,y,z,X,Y);
surf(X,Y,Z)
xlabel('Slope Angle [deg]');
ylabel('Attitude Angle [deg]');
zlabel('Displacement [mm]');
0 Kommentare
Akzeptierte Antwort
Hernia Baby
am 10 Okt. 2021
面の図を保持して点をプロットしましょう。
b = readmatrix('Book7.csv');
figure(1);
x = [b(:,1)];
y = [b(:,2)];
z = [b(:,3)];
xlin = linspace(0,8,18);
ylin = linspace(0,5,18);
[X,Y] = meshgrid(xlin, ylin);
Z = griddata(x,y,z,X,Y);
分かりやすくするため、面と線の透明度を設定します
surf(X,Y,Z,'FaceAlpha',0.3,'EdgeAlpha',0.3);
xlabel('Slope Angle [deg]');
ylabel('Attitude Angle [deg]');
zlabel('Displacement [mm]');
ここから図を保持し、任意の数( n = 7 )のx,y,z成分を取り出します
cell型にしているのはP{:}で各列の要素を取り出せるからです。
hold on
n = 7;
P = num2cell(b(n,:))
scatter3(P{:},30,'r','filled')
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 離散データ プロット finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!