Matlab中的三维散点图

时间:2010-07-01 05:41:58

标签: matlab

我是Matlab的新手,非常感谢你的帮助。我正在尝试绘制函数的散点图。稍后,我将使用其他函数来处理这些数据,并将其绘制在同一图上。但到目前为止,我在一个平面上绘制了标记,这不是我想要的。该功能为2D,图形应为3D。我怎么得到这个?

这是我到目前为止所尝试的内容。在此之前还有一些其他代码在给定不同参数的情况下为f(i,j)生成不同的值,因此当我实现代码时,我得到一系列数字。

for i=1:somenumber
    for j=1:somenumber
        f(i,j)=etc.
    end
end

figure;
x=1:somenumber;
plot3(x,f,x,'rs');
hold on;

2 个答案:

答案 0 :(得分:2)

请参阅我对您可能不想这样做的评论,但是在3D中绘图的一般方法是

x = 1:10;
y = 1:5;
[X Y] = meshgrid(x, y);
Z = X.^2 + 2 .* Y;      % in general, Z = f(X, Y)
plot3(X, Y, Z, '+')

答案 1 :(得分:1)

这是一条值得探索的途径:

nSamples = nX * nY;
xValues  = zeros( nSamples, 1 );
yValues  = zeros( nSamples, 1 );
zValues  = zeros( nSamples, 1 );

iSample = 0;
for iX = 1:nX
   for iY = 1:nY
      iSample = iSample + 1;

      xValues( iSample ) = iX;
      yValues( iSample ) = iY;
      zValues( iSample ) = someFunction( iX, iY );

   end
end

figure;
plot3( xValues(:), yValues(:), zValues(:), 'r.' );

这样可以很容易地将噪声添加到x,y或z中的任何一个或全部,以测试函数拟合算法。