Пример построения контура на полярной сетке не работает в Matlab

Я следовал следующему примеру для Matlab: http://se.mathworks.com/help/matlab/creating_plots/contour-plot-in-polar-coordinates.html. Этот пример работает, но когда я хочу построить свои собственные данные, фигура не меняется, и я не получаю никаких результатов. Построение моих данных, как обычно, с помощью контура() работает. Что я делаю неправильно?

Изменить: код из примера:

th = (0:5:360)*pi/180;
r = 0:.05:1;
[TH,R] = meshgrid(th,r);
[X,Y] = pol2cart(TH,R);
Z = X + 1i*Y;
f = (Z.^4-1).^(1/4);

figure
surf(X,Y,abs(f))
colormap summer;
hold on
surf(X,Y,zeros(size(X)))
hold off
xlabel('Real')
ylabel('Imaginary')
zlabel('abs(f)');
figure
contour(X,Y,abs(f),30)
axis equal
xlabel('Real')
ylabel('Imaginary')
h = polar([0 2*pi], [0 1]);
delete(h)
hold on
contour(X,Y,abs(f),30)

Мои значения: a, b и c, представляющие сетку сетки (как TH и R), и c, которая представляет собой матрицу высот. Я просто заменил последнюю команду:

contour(a, b, c, 30)

а — матрица размером 361х361 с диапазоном от 2 до 226, б — то же. c изменяется от 0,5 до 50 и имеет размер 361x361.


person arc_lupus    schedule 18.02.2015    source источник
comment
мы не знаем. Вы не показали нам код.   -  person Ander Biguri    schedule 18.02.2015
comment
@AnderBiguri: Код добавлен, надеюсь, это все, что вам нужно.   -  person arc_lupus    schedule 18.02.2015
comment
Было бы лучше, если бы вы показали нам только свой код.   -  person knedlsepp    schedule 18.02.2015
comment
Мы можем видеть код примера, который работает, а вы показываете нам код, который не работает?   -  person Ander Biguri    schedule 18.02.2015
comment
@AnderBiguri: Последняя строка не работает, т.е. если я ее ввожу, на рисунке ничего не меняется. Если вы хотите получить значения a, b и c, это долгий расчет, включающий несколько данных из внешних файлов. Но сама команда без отображения на полярное поле работает.   -  person arc_lupus    schedule 18.02.2015
comment
Затем вам нужно опубликовать MWE вашей ошибки. stackoverflow.com/help/mcve   -  person Ander Biguri    schedule 18.02.2015
comment
Нам не нужно знать значения a, b и c, но нам помогут их size и range. Кроме того, вы понимаете, что вам нужны только (если вы настроили свои переменные) последние четыре строки для этого графика, верно?   -  person nkjt    schedule 18.02.2015
comment
@nkjt: я знаю, но для лучшей воспроизводимости я хотел добавить весь код.   -  person arc_lupus    schedule 18.02.2015


Ответы (1)


Хорошо, решение проблемы было просто переписать эту строку

h = polar([0 2*pi], [0 1]);

to

h = polar([0 2*pi], [0 max(a)]);

потому что мои данные начинались со значения x, равного 2, и поэтому не отображались в диапазоне от 0 до 1.

person arc_lupus    schedule 04.03.2015