在matlab中用surf重建三维图形?
我通常使用在matlab中用surf重建三维图形?,matlab,Matlab,我通常使用surf函数在matlab中绘制3D图形,但是现在数据不同了,所以我使用plot3,我有下图。你知道我如何重建这个图形,即使使用不同的函数,也能更容易理解吗。 更简洁地说,我有X个值,每个X值都有Y和Z X = [ 1 ;2 ;4; 8; 16; 32; 64]; Z = [ 1; 1.8 ; 3.46 ; 6.74 ; 13.18 ; 24.34 ; 39.33] Y = [0 ; 56.92 ; 91 ; 109.95 ; 119 ; 123.57 ; 125.51] fig =
surf
函数在matlab中绘制3D图形,但是现在数据不同了,所以我使用plot3
,我有下图。你知道我如何重建这个图形,即使使用不同的函数,也能更容易理解吗。
更简洁地说,我有X个值,每个X值都有Y和Z
X = [ 1 ;2 ;4; 8; 16; 32; 64];
Z = [ 1; 1.8 ; 3.46 ; 6.74 ; 13.18 ; 24.34 ; 39.33]
Y = [0 ; 56.92 ; 91 ; 109.95 ; 119 ; 123.57 ; 125.51]
fig = plot3(log(X),Y,Z,'b.-');
XLABEL=[ 1 2 4 8 16 32 64];
set(gca,'XTickLabel',XLABEL);
set(gca,'XTick',log(XLABEL));
YLABEL= [ 0 30 60 90 120 150 180];
set(gca,'YTickLabel',YLABEL);
set(gca,'YTick',YLABEL);
ZLABEL= [0 5 10 15 20 25 30 35 40 45 50 55];
set(gca,'ZTickLabel',ZLABEL);
set(gca,'ZTick',(ZLABEL));
ylim([0 180]);
zlim([0,55]);
grid on
很难说,因为我们没有上下文。常见的选择有:
选项3的代码: 在代码末尾,添加以下代码:
X2=[X';X';nan(size(X'))];
X2=X2(:);
Y2=[Y';Y';nan(size(Y'))];
Y2=Y2(:);
Z2=[Z';zeros(size(Z'));nan(size(Z'))];
Z2=Z2(:);
hold on
plot3(log(X2),Y2,Z2,'--')
要理解它,您必须知道matlab在绘图时跳过了NaN。因此,上面的代码为每个点生成一个独立的线段,将其连接到地平面
很难说,因为我们没有上下文。常见的选择有:
选项3的代码: 在代码末尾,添加以下代码:
X2=[X';X';nan(size(X'))];
X2=X2(:);
Y2=[Y';Y';nan(size(Y'))];
Y2=Y2(:);
Z2=[Z';zeros(size(Z'));nan(size(Z'))];
Z2=Z2(:);
hold on
plot3(log(X2),Y2,Z2,'--')
要理解它,您必须知道matlab在绘图时跳过了NaN。因此,上面的代码为每个点生成一个独立的线段,将其连接到地平面
您好,根据您提供的信息,此处显示的绘图可能完全正确。如果你有三个向量大小n,X,Y,Z,这是一条三维直线,但我正在寻找是否有更好的方法来表示它。。我通常使用带有颜色条的surf来更好地理解Z@AnderBiguri:绘图是无用的,您无法从中读取任何值。您好,您提供的信息显示的绘图可能完全正确。如果你有三个向量大小n,X,Y,Z,这是一条三维直线,但我正在寻找是否有更好的方法来表示它。。我通常使用带有颜色条的surf来更好地理解Z@AnderBiguri当前位置这幅图没用,你无法从中读出任何值。如果我弄错了,请纠正我。您的意思是连接所有对应于X值和Z值之一的点。我试过图3(对数(X),Y,Z,'b.-');现在,我有一条带连接点的线。你是说这个还是别的?@卡门:不,我建议了其他的选择。你说的是哪一点?如果不清楚,我将添加一个示例。我用完整的代码更新了问题,因此根据数据更容易理解您的建议。@Carmen:我的建议中哪一个不清楚,但可能有趣?我不会提供所有五个的代码。谢谢,我对建议3感兴趣,我用上面的代码试过了。如果我错了,请纠正我。您的意思是连接所有对应于X值和Z值之一的点。我试过图3(对数(X),Y,Z,'b.-');现在,我有一条带连接点的线。你是说这个还是别的?@卡门:不,我建议了其他的选择。你说的是哪一点?如果不清楚,我将添加一个示例。我用完整的代码更新了问题,因此根据数据更容易理解您的建议。@Carmen:我的建议中哪一个不清楚,但可能有趣?我不会提供所有五个代码。谢谢,我对建议3感兴趣,我用上面的代码试过了。