我是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;
答案 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中的任何一个或全部,以测试函数拟合算法。