Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 20

Работа с графиком polar и функцией polartick.m

02.09.2014, 16:10. Показов 2222. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Имеется следующий код, который реализует график в полярных координатах, выводя по внешней окружности значения переменной X с помощью функции polarticks.
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Y=[180:-2:0,1:10];
X=0.2:0.01:1.2;
ff=0:0.1:2*pi;
fi=2*pi*X/X(end);
X=X(1:100);%число меток должно быть чётным
figure
polar(ff,200*ones(1,length(ff)),'w')% плашка
hold on
p=polar(fi,Y,'b')
 
 
X=0.1:0.1:1.25; % Разметка
 
nX=numel(X);
text_handles = polarticks (nX, p,[0.5,1,5,10,20,50,100,150,200]);
for ik=1:nX
  set(text_handles(ik),'String',num2str(X(ik))) 
end
Прошу помочь со следующими вопросами.
1. На графике необходимо сделать акцент на центр окружности, а именно чтобы масштаб там был больше и стали видны перегибы функции. Для этого можно изменить зависимость, но у самого не получилось.
2. Как я понял, полартикс не является привязанной к графику, и чтобы отражались правильные значения , к примеру наибольшее удаление графика от центра при X=0.2, необходима тщательная подстройка значений X для функции. А если я захочу изменить данные? Или увеличить масштаб разметки?
3. По требованию моего руководства разметка плашки должна показываться как на 2м рисунке. Как сделать это? Ее же снова полартикс перебивает.
Заранее спасибо. Надеюсь я понятно обрисовал ситуацию.
Миниатюры
Работа с графиком polar и функцией polartick.m   Работа с графиком polar и функцией polartick.m  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.09.2014, 16:10
Ответы с готовыми решениями:

Работа с графиком polar
Добрый день. При создании графика с полярными координатами в Matlab стоит задача, чтобы вместо градусов по внешней окружности отображались...

Ошибка в программе с графиком и функцией
Вот собственно сама программа, пишет что неизвестное имя setcolor =( Program grafik; uses crt,graphabc; var...

Найти решение дифференциального уравнения операторным методом с функцией, заданной графиком
... в правой части.) Доброго времени суток! Прошу прощения у обитателей данного форума, но не могли бы вы мне помочь с некоторым...

4
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
02.09.2014, 17:52
пункт 1:

пункт 2: то есть значения отображаются неправильные? Какие значения? Те, что по кругу, или те, что от центра?
пункт 3: то есть разметка должна быть в градусах? Или начинатся с нуля? Или числа идущие от центра должны быть между 60 и 90 градусами?
1
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 20
02.09.2014, 17:59  [ТС]
1. Можно узнать как такое сделать? х) То, что нужно как раз.
2. Значения по внешней окружности, те что по кругу. Они не являются привязанными к значениям, что заложены в график. То есть, изменив количество разбиений в 12 строке кода, с 0.1 до 0.05 скажем, значения полартикс сдвинуться относительно графика.
3. Числа идущие от центра должны быть в секторе от 60 до 90 градусов.
0
 Аватар для tvoretsmira
462 / 452 / 56
Регистрация: 28.05.2013
Сообщений: 699
02.09.2014, 19:23
Лучший ответ Сообщение было отмечено Gpa15 как решение

Решение

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Y=[180:-2:0,1:10];
X=0.2:0.01:1.2;
ff=0:0.1:2*pi;
fi=2*pi*X/X(end);
figure
% polar(ff,Y(end)*ones(1,length(ff)),'w')% Не знаю, зачем здесь плашка?
% hold on
p=polar(fi,log10(Y),'b')
set(p,'LineWidth',2)
X=0.1:0.1:1.25; % Разметка
 
nX=numel(X);
rTickLinear=[2,5,10,20,50,100,150,200];
% Дело в том что log10 от чисел, которые меньше 1 выдаёт отрицательные
% значения, а радиус в полярной системе координат всегда положительный
% Фактически, при логарифмическом масштабировании по радиусу минимальный
% радиус равен 1.
rTicksLog=log10(rTickLinear);
rTicksLabels=arrayfun(@num2str, rTickLinear, 'unif', 0);
[hTxtCirc,hTxtRad] = polarticks (nX, p,rTicksLog,rTicksLabels,75);
% 75 градусов это угол поворота луча текста, который идёт от центра
for ik=1:nX
  set(hTxtCirc(ik),'String',num2str(X(ik)),'FontSize',10) 
end
for ik=1:length(rTicksLabels)
  set(hTxtRad(ik),'FontSize',10) 
end
пункт 2: дело в том, что надписи на заборе никак не связаны с реальностью . Если какое-то отношение и существует то задать его должны вы, а polarticks здесь не при чём. Я так понимаю в график заложено fi, значит по кругу должен быть написан угол в радианах?
И очередная версия polarticks в архиве:
Вложения
Тип файла: rar polarticks.rar (2.8 Кб, 4 просмотров)
1
0 / 0 / 0
Регистрация: 28.08.2014
Сообщений: 20
02.09.2014, 19:32  [ТС]
Большое спасибо, опять, буду дальше разбираться.
Угол в радианах вроде не нужен, это уже накладки разработки х)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.09.2014, 19:32
Помогаю со студенческими работами здесь

Работа с графиком
1) Как сделать что бы по оси X время отображалось с секундами ? 2) Что бы временной интервал по оси X был 60 секунд и проматывался...

Работа с графиком
Добрый день, уважаемые программисты. Возник такой вопрос, как можно построить график в TChart. Имеется txt файл с двумя...

Работа с графиком
Задание: дано число а. Вычислить f(a). Есть графики y:=1/sqr(x), y:=4, y:=sqr(2) Прилагаю своё решение задачи program zadacha4; ...

Работа с графиком
Пробовал поработать с графиком в Visual C++, на форму добавил график (Chart1) и в кнопку которая будет рисовать график прописал код (ниже...

Работа с графиком
Строю график компонентом Chart1, как сделать чтоб снизу была ось времени? Время у меня считывается с прибора, в формате. TVarRec...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru