Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
13 / 3 / 0
Регистрация: 20.02.2013
Сообщений: 94
1

Показать параметры на точках

28.05.2013, 22:26. Показов 1076. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Не знаю как указать на получившихся точках, которые получаются при plot. (Амплитуду и фазу для каждой точки. В коде Амплитуда это ar1 или ar2, а фаза P1)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
lym=30;                                 
% длина волны
theta=5.*pi/180;
 fi=5.*pi/180;
 k=2*pi/lym;                              
% % волновое число
delx=1;
dely=1;
% Пъедестал по x и y
Nx=8;                                   
% количество излучателей по оси x
Ny=8;                                   
% количество излучателей по оси y
dx=30;                                   
% расстояние между излучателями по оси x
dy=30;                                  
% расстояние между излучателями по оси y
p1=11.25*pi/180;  
% число задающее дискрет фазирования (delta psi)
 
dpsix=(k*dx*sin(theta).*cos(fi))*(-1);          
% фазовый сдвиг между излучателями по оси x
 dpsiy=(k*dy*sin(theta).*sin(fi))*(-1);          
% фазовый сдвиг между излучателями по оси y
 N=Nx*Ny;                                 
x=0:dx:dx*(Nx-1);
y=0:dy:dy*(Ny-1);
[xe ye]=meshgrid(x,y);
% Координаты x, y и z для каждого излучателя
x=reshape(xe',1,[]); 
 y=reshape(ye',1,[]);
z=(0:1:N-1)*0;
 % Сдвиг фазы для каждого излучателя
 Px1=0:dpsix:dpsix*(Nx-1);
Py1=0:dpsiy:dpsiy*(Ny-1);
[P1 P2]=meshgrid(Px1,Py1);
Px1=reshape(P1',1,[]);
Py1=reshape(P2',1,[]);
K1=(Px1+Py1);
P1 = floor(K1/p1+0.5).*p1;
%определение амплитуды тока на элементах
dx1=0:dx:(dx*(Nx-1));%координаты х элементов решетки
dy1=0:dy:(dy*(Ny-1));%координаты у элементов решетки
dx0=mean(dx1);%координаты центра решетки
dy0=mean(dy1);   
[dx dy]=meshgrid(dx1,dy1);%координаты элементов решетки
flag==1
ar1=((delx+(1-delx).*cos(pi.*(dx-dx0)./(max(dx1)-min(dx1)+eps))).*(dely+(1-dely).*cos(pi.*(dy-dy0)./(max(dy1)-min(dy1)+eps))));%косинус на пьедестале
   
ar2=((delx+(1-delx).*cos(pi.*(dx-dx0)./(max(dx1)-min(dx1)+eps)).^2).*(dely+(1-dely).*cos(pi.*(dy-dy0)./(max(dy1)-min(dy1)+eps)).^2));%косинус квадрат на пьедестале
ar1=reshape(ar1',1,[]); 
ar2=reshape(ar2',1,[]);
T=[x;y;z;ar1;P1];
 D=T'
 plot(D(:,1),y,'or');
По заданным параметрам для первой точки буду соответствовать (ar1=1, P1=0), для второй (1, -0.58905) и т.д.
При просмотре должны быть видны только цифры, как для второй точки.
Заранее, очень благодарен!
P.S. Прошу простить за безобразно написанный файл, просто времени нет на правильное оформление.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2013, 22:26
Ответы с готовыми решениями:

Показать форму в нужных точках x y
Здравствуйте. Подскажите как заставить форму появляется строго по координатам x y, например x=1200,...

Показать, что треугольник с вершинами в точках А, В и С прямоугольный. Найти его периметр
Показать, что треугольник с вершинами в точках А(1; -2; 1), В(3; -3; -1) и С(4; 0; 3)...

показать Имя=$Переменная&Имя2=$Переменная2? Показать два+ значения
<?PHP $user = $_POST; $pass = $_POST; $con = mysql_connect("localhost","моя","мой") or...

В окне показать обратный отсчет времени и при достижении 0 показать рисунок взрыва
Ребята,помогите пожалуйста )) на javascript :)

16
5242 / 3570 / 379
Регистрация: 02.04.2012
Сообщений: 6,473
Записей в блоге: 17
29.05.2013, 19:03 2
Ну в матлабе есть функция text(x,y,str), которая отображает строку str на графике в точке с координатами x, y. (строка может содержать TeX выражения, так что можно рисовать целые формулы)

Просто если точек очень много или они очень близко, то строки все загадят поэтому использовать ее нужно аккуратно
1
13 / 3 / 0
Регистрация: 20.02.2013
Сообщений: 94
29.05.2013, 19:18  [ТС] 3
А можно поподробнее, посмотрел в справки и сёравно не понимаю как это сделать в моём случае...
0
461 / 451 / 56
Регистрация: 28.05.2013
Сообщений: 699
29.05.2013, 20:17 4
Вот это Зосима имел ввиду:
Matlab M
1
2
3
4
for ik=1:N
str=['(',num2str(ar1(ik)),',',num2str(P1(ik)),')'];
text(D(ik,1),y(ik),str,'VerticalAlignment','baseline')
end
1
13 / 3 / 0
Регистрация: 20.02.2013
Сообщений: 94
29.05.2013, 20:25  [ТС] 5
Спасибо огромное! Вы меня выручаете уже второй раз!
0
13 / 3 / 0
Регистрация: 20.02.2013
Сообщений: 94
07.06.2013, 13:36  [ТС] 6
Доброго времени суток!
В этой теме назрел ещё один вопросик!
Не подскажите, есть ли возможность текст у точек размещать не тоько над ними, но и под ними в цикле через одну...
Допустим, цифры это точки, а буквы это text

а в
1 2 3 4
д б ж г
5 6 7 8
е з
Может, так решу проблемку с тем, что все значения заползают друг на друга
0
461 / 451 / 56
Регистрация: 28.05.2013
Сообщений: 699
07.06.2013, 19:27 7
Посмотри HorizontalAlignment и VerticalAlignment в Text Properties в справке. Там даже картинки есть:
http://www.mathworks.com/help/... l#f0-28390
Кстати, свойства объекта text можно изменять через тот же Property Inspector которым ты пользовался в guide.
1
13 / 3 / 0
Регистрация: 20.02.2013
Сообщений: 94
08.06.2013, 14:35  [ТС] 8
Информации много, а по теме почти ничего...
Попробую шрифт уменьшить может не так заметно будет...

Добавлено через 18 часов 32 минуты
Добрый день! прочитал в справке и сделал text так:
text(data.point.x(ik),data.point.y(ik),str,'VerticalAlignment','baseline','FontS ize',6);
Имеется проблема, когда точек много, текст сливается,
как сделать, чтобы он менял своё положение и не заезжал на текст другого элемента?
не понимаю, что выбрать и куда прописать.
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
09.06.2013, 14:24 9
А сделать окно побольше не вариант? И напишите приблизительно текст, который Вам надо уместить.
0
13 / 3 / 0
Регистрация: 20.02.2013
Сообщений: 94
09.06.2013, 16:29  [ТС] 10
Текст это цифры и его уменьшать больше нельзя...
С экраном тоже проблемка, я его в проге сделал так чтобы увеличить было нельзя
Всё выглядит так:
Показать параметры на точках
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
09.06.2013, 17:03 11
Оуу) Тогда даже не знаю. Подумайте: имеет ли вообще смысл тулить эти данные на каждую точку? Может эти цифры вписать отдельно в таблицу и сделать popupmenu: типа "хочешь таблицу смотри, а хочешь геометрию ФАР"?

Добавлено через 23 минуты

Не по теме:

Прикольный GUI. Думаю с использованием Phased Array Toolbox выглядел бы еще ярче :)

1
13 / 3 / 0
Регистрация: 20.02.2013
Сообщений: 94
11.06.2013, 21:49  [ТС] 12
В том-то и дело, что таблицы есть, но надо как-то зделать чтобы текст был сверху и снизу в цикле...
Может есть какие-нибудь идейки записать текст как-нибудь по другому?
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
12.06.2013, 00:41 13
Вконце кода, взятого из 1го сообщения я дописал:

Не по теме:

кстати, я долго смеялся когда это писал :D:D:D:wall:


Matlab M
1
2
3
4
h = [{'baseline'} {'top'}];
for k = 1:length(y)
    text(D(k,1), y(k), 'blablabla', 'VerticalAlignment', h{mod(k,2)+1});
end
2
13 / 3 / 0
Регистрация: 20.02.2013
Сообщений: 94
12.06.2013, 09:26  [ТС] 14
Извени, за то, что опять пишу на эту тему, но немогу сообразить как применить в моём случае...

Matlab M
1
2
3
4
for ik=1:N
str=['(',num2str((floor((ar1(ik))*100))/100),',',num2str(Px(ik)*180/pi),')'];
text(T(ik,1),y(ik),str,'VerticalAlignment','baseline','FontSize',6)
end
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
12.06.2013, 09:32 15
Ща через часик-второй я попаду за комп - отпишу. А Вы, пока что, лучше приведите весь код (спрячте под спойлер), что бы я проверить мог.
1
13 / 3 / 0
Регистрация: 20.02.2013
Сообщений: 94
12.06.2013, 09:44  [ТС] 16
Ок!
FA_file.rar
0
Эксперт по электронике
939 / 839 / 121
Регистрация: 23.11.2012
Сообщений: 2,489
12.06.2013, 10:17 17
Вот что получается:
Кликните здесь для просмотра всего текста
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
 %Определение координат, Ам и фазы для плоской ромбической антенной решётки
lym=30;                                 
%длина волны
theta=10.*pi/180;
fi=10.*pi/180;
delx=0.5;
dely=0.5;
% Пъедестал по x и y
Nx=11;                                   
%количество излучателей по оси x
Ny=11;                                   
%количество излучателей по оси y
dx=30;                                   
%расстояние между излучателями по оси x
dy=30;                                  
%расстояние между излучателями по оси y
p1=22.5*pi/180;  
%число задающее дискрет фазирования (delta psi)
k=2*pi/lym;                              
% волновое число
n=Nx;
A=ones(n);
m=(n-1)/2;
A=triu(A,-m);
A=tril(A,m);
A=fliplr(A);
A=triu(A,-m);
A=tril(A,m);
A=reshape(A',1,[]);
 
 
dpsix=(k*dx*sin(theta).*cos(fi))*(-1);          
%фазовый сдвиг между излучателями по оси x
dpsiy=(k*dy*sin(theta).*sin(fi))*(-1);          
%фазовый сдвиг между излучателями по оси y
N=Nx*Ny;                                 
x=0:dx:dx*(Nx-1);
y=0:dy:dy*(Ny-1);
[xe ye]=meshgrid(x,y);
%Координаты x, y и z для каждого излучателя
x=reshape(xe',1,[]); 
y=reshape(ye',1,[]);
z=(0:1:N-1)*0;
% Сдвиг фазы для каждого излучателя
if dpsix==0 ;
   Px1=zeros(1,Nx);
 else
   Px1=0:dpsix:dpsix*(Nx-1);
 end
 if dpsiy==0
   Py1=zeros(1,Ny);
 else 
   Py1=0:dpsiy:dpsiy*(Ny-1);
 end
 [P1 P2]=meshgrid(Px1,Py1);
 Px1=reshape(P1',1,[]);
 Py1=reshape(P2',1,[]);
 K1=(Px1+Py1);
 Px = round((K1/p1)+0.5).*p1;
%определение амплитуды тока на элементах
dx1=0:dx:(dx*(Nx-1));%координаты х элементов решетки
dy1=0:dy:(dy*(Ny-1));%координаты у элементов решетки
dx0=mean(dx1);%координаты центра решетки
dy0=mean(dy1);   
[dx dy]=meshgrid(dx1,dy1);%координаты элементов решетки
flag==1;
ar1=((delx+(1-delx).*cos(pi.*(dx-dx0)./(max(dx1)-min(dx1)+eps))).*(dely+(1-dely).*cos(pi.*(dy-dy0)./(max(dy1)-min(dy1)+eps))));%косинус на пьедестале
ar2=((delx+(1-delx).*cos(pi.*(dx-dx0)./(max(dx1)-min(dx1)+eps)).^2).*(dely+(1-dely).*cos(pi.*(dy-dy0)./(max(dy1)-min(dy1)+eps)).^2));%косинус квадрат на пьедестале
ar1=reshape(ar1',1,[]); 
ar2=reshape(ar2',1,[]);
% Результаты для сохранения документа txt.
x=x.*A;
y=y.*A;
ar1=ar1.*A;
Px=Px.*A;
K1=K1.*A;
z=z.*A;
T=[x;y;z;ar1;Px];
T=T';
plot(T(:,1),y,'dr');
axis equal
Px=Px*(-1);
h = [{'baseline'} {'top'}];
for ik=1:N
str=['(',num2str((floor((ar1(ik))*100))/100),',',num2str(Px(ik)*180/pi),')'];
text(T(ik,1),y(ik),str,'VerticalAlignment',h{mod(ik,2)+1},'FontSize', 7)
end
1
12.06.2013, 10:17
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2013, 10:17
Помогаю со студенческими работами здесь

LM317 параметры, DS18B20 параметры, увеличение длины линии.
Добрый день, у меня образовалось 2 вопроса, на которые не могу найти конкретный ответ. Первый...

Параметры-значения и параметры-переменные в функции и процедуре
Плиз помогите в этом коде поставить параметры или атрибуты, не уверен в правильном названии, для...

Расчитать параметры ЛРП (Первичные и вторичные параметры)
Помогите пожалуста разобратся с задачей (экзамечионный билет) Я как то - с горем пополам рассчитал...

Блок div скрыть/показать при нажатии на кнопку "показать все"
Добрый день. На странице:...

При запуске показать какие диски есть и при выборе диска показать содержимое
Нужно написать небольшое приложение, которое при запуске показывает какие диски есть и при выборе...

Параметры-значения и параметры-переменные подпрограмм
Помогите пожалуйста в решении: С помощью подпрограмм ввода и вывода вектора ввести и вывести...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru