3D точечные диаграммы в Matlab - PullRequest
0 голосов
/ 01 июля 2010

Я довольно новичок в 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 ]

2 голосов
/ 01 июля 2010

См. Мой комментарий о том, почему вы, вероятно, не хотите этого делать, но общий способ построения графиков в 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 голос
/ 12 октября 2011

Вот путь, который стоит изучить:

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 для проверки алгоритма подбора функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...