Дискуссионный математический форумМатематический форум

Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 4 часа [ Летнее время ]
MathHelpPlanet.com RSS-лента Математического форума

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 14:04 
Не в сети
Начинающий
Зарегистрирован:
14 дек 2013, 13:51
Сообщений: 20
Cпасибо сказано: 2
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Как записать массив координат вершин x,y и обратиться к одной компоненте X внутри Table когда задаются 10 точек?
p0=Dynamic[Table[….
p1=Dynamic[Table[….
Point[{p0,p1}]
Ошибка.
Point[p0[1],p1[2]]
Ошибка.
Point[p0[[1]],p1[[2]]]
Ошибка

Суть: По одной Table строиться точки. Теперь мне нужны X их координаты внутри другой Table.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 14:23 
Не в сети
Одарённый
Зарегистрирован:
27 май 2015, 20:47
Сообщений: 131
Cпасибо сказано: 3
Спасибо получено:
31 раз в 29 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Если я правильно понял, то так.
pointX = Table[i, {i, 1, 10}];
pointY = Table[i, {i, -5, 5}];

Graphics@Point[{pointX[[1]], pointY[[1]]}]


Лучше координаты точек задавать в одной функции Table.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 16:51 
Не в сети
Начинающий
Зарегистрирован:
14 дек 2013, 13:51
Сообщений: 20
Cпасибо сказано: 2
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
SAVANTOS писал(а):
одной функции Table.

А как если в одной Table? Выдает огромные формулы…

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 17:00 
Не в сети
Одарённый
Зарегистрирован:
27 май 2015, 20:47
Сообщений: 131
Cпасибо сказано: 3
Спасибо получено:
31 раз в 29 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Excalibur921 писал(а):
А как если в одной Table? Выдает огромные формулы…


Смотря как вычисляются координаты точек.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 17:09 
Не в сети
Начинающий
Зарегистрирован:
14 дек 2013, 13:51
Сообщений: 20
Cпасибо сказано: 2
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
(*---------------------*)   
p0=Dynamic[Table[
{
If[NaidenUgol>2*Pi,NaidenUgol=NaidenUgol-(2*Pi)];
NaidenUgol=NaidenUgol+ShagUgla;
xA+Cos[NaidenUgol]*AB,
yA+Sin[NaidenUgol]*AB
},{i,0,PolozeniRasceta}]];
RGBColor[0,0,0],
PointSize[0.02],
Point[p0],
(*---------------------*)


Следующая таблица должна рисовать
P1=Dynamic[Table[…
Где должны браться отдельно “xA+Cos[NaidenUgol]*AB,” и “ yA+Sin[NaidenUgol]*AB” от p0 таблицы.

В С++ указывают типа array[i] и все работает, тут так нельзя, array не могут строить точки как не пытался.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 17:21 
Не в сети
Одарённый
Зарегистрирован:
27 май 2015, 20:47
Сообщений: 131
Cпасибо сказано: 3
Спасибо получено:
31 раз в 29 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Обращение к элементам списка происходит через функцию Part (сокращённый вариант [[ ]]).
data= {{1,2},{3,4},{5,6}};
data[[1]] (* результат {1,2} *)
data[[1,1]] (* получится 1 *)

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 17:54 
Не в сети
Начинающий
Зарегистрирован:
14 дек 2013, 13:51
Сообщений: 20
Cпасибо сказано: 2
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Не работает.
Код уже внутри Graphics.
(*-----м<а0сAсAи8в2 к:о>о>р@д4и8н=а0тB B----------------*)   
p0=Dynamic[Table[
{
If[NaidenUgol>2*Pi,NaidenUgol=NaidenUgol-(2*Pi)];
NaidenUgol=NaidenUgol+ShagUgla;
xA+Cos[NaidenUgol]*AB,
yA+Sin[NaidenUgol]*AB
},{i,0,PolozeniRasceta}]];
RGBColor[0,0,0],
PointSize[0.02],
Point[p0],
(*-----м<а0сAсAи8в2 к:о>о>р@д4и8н=а0тB B----------------*)

(*-----м<а0сAсAи8в2 к:о>о>р@д4и8н=а0тB С!----------------*)
NaidenUgol=1;
p1=Dynamic[Table[ (*-----о>шHи8б1к:а0----------------*)
{
NaidenUgol=NaidenUgol+ShagUgla;
p0[[1,1]]+Cos[NaidenUgol]*0.2,
p0[[1,2]]+Sin[NaidenUgol]*0.2
},{i,0,PolozeniRasceta}]];
RGBColor[0,0,0],
PointSize[0.02],
Point[p1]
(*-----м<а0сAсAи8в2 к:о>о>р@д4и8н=а0тB С!----------------*)

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 18:06 
Не в сети
Одарённый
Зарегистрирован:
27 май 2015, 20:47
Сообщений: 131
Cпасибо сказано: 3
Спасибо получено:
31 раз в 29 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Можете отправить весь код в notebook?

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 18:17 
Не в сети
Начинающий
Зарегистрирован:
14 дек 2013, 13:51
Сообщений: 20
Cпасибо сказано: 2
Спасибо получено:
0 раз в 0 сообщении
Очков репутации: 1

Добавить очки репутацииУменьшить очки репутации
Deploy[
Graphics[
{
PolozeniRasceta = 10;(*----Сколько положений B вокруг A считать*)
ShagUgla = (2*Pi)/PolozeniRasceta;
xA = 0;
yA = 0;
xB = 0.25;
yB = 0.25;
xC = 0.6;
yC = 0.5;
xD = 0.8;
yD = 0;
AB = Dynamic[
EuclideanDistance[{xA, yA}, {xB, yB}]];(*----длинна AB*)
StartUgol =
Dynamic[Mod[ArcTan[xB - xA, yB - yA],
2 Pi]];(*----стартовый угол AB*)

NaidenUgol = StartUgol;
a0 = Dynamic[
If[(xB - xC)*(yD - yB) - (xD - xB)*(yB - yC) > 0,
1, -1]];(*----точка C выше AD?*)
(*----*)
BC = Dynamic[EuclideanDistance[{xB, yB}, {xC, yC}]];
BD = Dynamic[EuclideanDistance[{xB, yB}, {xD, yD}]];
CD = Dynamic[EuclideanDistance[{xC, yC}, {xD, yD}]];
(*Alfa0=ArcCos[(BC^2+BD^2-CD^2)/(2*BC*BD)];*)
(*Alfa0=Dynamic[ArcCos[(BC^2+BD^2-CD^2)/(2*BC*BD)]];*)
(*----*)
RGBColor[10, 0, 0],
PointSize[0.03],
Point[Dynamic[{xA, yA}]],
Point[Dynamic[{xB, yB}]],
Point[Dynamic[{xC, yC}]],
Point[Dynamic[{xD, yD}]],

Line[{Dynamic[{xA, yA}], Dynamic[{xB, yB}]}],

Locator[Dynamic[{xA, yA}], None],
Locator[Dynamic[{xB, yB}], None],
Locator[Dynamic[{xC, yC}], None],
Locator[Dynamic[{xD, yD}], None],
(*----------------------*)
Text[StyleForm[Dynamic[
Alfa0
], FontSize -> 20, FontWeight -> "Bold"], {-0.8, -0.8}],
(*----------------------*)

(*-----массив координат B----------------*)
p0 = Dynamic[Table[
{
If[NaidenUgol > 2*Pi, NaidenUgol = NaidenUgol - (2*Pi)];
NaidenUgol = NaidenUgol + ShagUgla;
xA + Cos[NaidenUgol]*AB,
yA + Sin[NaidenUgol]*AB
}, {i, 0, PolozeniRasceta}]];
RGBColor[0, 0, 0],
PointSize[0.02],
Point[p0],
(*-----массив координат B----------------*)

(*-----массив координат С----------------*)
(*(*-----ошибка----------------*)
NaidenUgol=1;
p1=Dynamic[Table[
{
If[NaidenUgol>2*Pi,NaidenUgol=NaidenUgol-(2*Pi)];
NaidenUgol=NaidenUgol+ShagUgla;
p0[[1,1]]+Cos[NaidenUgol]*0.2,
p0[[1,2]]+Sin[NaidenUgol]*0.2
},{i,0,PolozeniRasceta}]];
RGBColor[0,0,0],
PointSize[0.02],
Point[p1]
(*-----массив координат С----------------*) *)



(*----------------------------------------------------------------------\
---------------------*)
},
AspectRatio -> 1,
Axes -> True,
PlotRange -> 1
]]

Cчитаем массив massA[i,x,y] I номер точки массива, xy координаты.
В другом массиве нужно брать для расчета уже посчитанные элементы массива massA.
И считать новый massB=[i, massA[x+a], massA[y+b]]] a, b это расчеты.

Например: есть окружность из 10 точек. Как нарисовать еще окружность вокруг любой точки первой окружности? И чтобы она таскалась вместе в первой.

Вернуться к началу
 Профиль  
Cпасибо сказано 
 Заголовок сообщения: Re: Доступ к компоненту массива Table внутри Table
СообщениеДобавлено: 28 янв 2016, 18:58 
Не в сети
Одарённый
Зарегистрирован:
27 май 2015, 20:47
Сообщений: 131
Cпасибо сказано: 3
Спасибо получено:
31 раз в 29 сообщениях
Очков репутации: 2

Добавить очки репутацииУменьшить очки репутации
Я убрал Dynamic перед Table. Теперь работает. Если вам нужны вычисления с Dynamic, то помочь не могу.

▼ Код
Graphics[{PolozeniRasceta = 
10;(*----Сколько положений B вокруг A считать*)
ShagUgla = (2*Pi)/PolozeniRasceta;
xA = 0;
yA = 0;
xB = 0.25;
yB = 0.25;
xC = 0.6;
yC = 0.5;
xD = 0.8;
yD = 0;
AB = Dynamic[EuclideanDistance[{xA, yA}, {xB, yB}]];(*----длинна AB*)
StartUgol =
Dynamic[Mod[ArcTan[xB - xA, yB - yA],
2 Pi]];(*----стартовый угол AB*)NaidenUgol = StartUgol;
a0 = Dynamic[
If[(xB - xC)*(yD - yB) - (xD - xB)*(yB - yC) > 0,
1, -1]];(*----точка C выше AD?*)(*----*)
BC = Dynamic[EuclideanDistance[{xB, yB}, {xC, yC}]];
BD = Dynamic[EuclideanDistance[{xB, yB}, {xD, yD}]];
CD = Dynamic[EuclideanDistance[{xC, yC}, {xD, yD}]];
(*Alfa0=ArcCos[(BC^2+BD^2-CD^2)/(2*BC*BD)];*)(*Alfa0=Dynamic[
ArcCos[(BC^2+BD^2-CD^2)/(2*BC*BD)]];*)(*----*)RGBColor[10, 0, 0],
PointSize[0.03], Point[Dynamic[{xA, yA}]], Point[Dynamic[{xB, yB}]],
Point[Dynamic[{xC, yC}]], Point[Dynamic[{xD, yD}]],
Line[{Dynamic[{xA, yA}], Dynamic[{xB, yB}]}],
Locator[Dynamic[{xA, yA}], None], Locator[Dynamic[{xB, yB}], None],
Locator[Dynamic[{xC, yC}], None], Locator[Dynamic[{xD, yD}], None],(*----------------------*)
Text[StyleForm[Dynamic[Alfa0], FontSize -> 20,
FontWeight ->
"Bold"], {-0.8, -0.8}],(*----------------------*)(*-----массив \
координат B----------------*)
p0 = Table[{If[NaidenUgol > 2*Pi, NaidenUgol = NaidenUgol - (2*Pi)];
NaidenUgol = NaidenUgol + ShagUgla;
xA + Cos[NaidenUgol]*AB, yA + Sin[NaidenUgol]*AB}, {i, 0,
PolozeniRasceta}];
RGBColor[0, 0, 0], PointSize[0.02],
Point[p0],(*-----массив координат B----------------*)(*-----массив \
координат С----------------*)(*-----ошибка----------------*)
NaidenUgol = 1;
p1 = Table[{If[NaidenUgol > 2*Pi, NaidenUgol = NaidenUgol - (2*Pi)];
NaidenUgol = NaidenUgol + ShagUgla;
p0[[1, 1]] + Cos[NaidenUgol]*0.2,
p0[[1, 2]] + Sin[NaidenUgol]*0.2}, {i, 0, PolozeniRasceta}];
RGBColor[0, 0, 0], PointSize[0.02], Point[p1]
(*-----массив координат \
С----------------*)(*-------------------------------------------------------------------------------------------\
*)}, AspectRatio -> 1, Axes -> True, PlotRange -> 1]

Вернуться к началу
 Профиль  
Cпасибо сказано 
За это сообщение пользователю SAVANTOS "Спасибо" сказали:
Excalibur921
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 21 ]  На страницу 1, 2, 3  След.

 Похожие темы   Автор   Ответы   Просмотры   Последнее сообщение 
Доступ к Matlab из стороних приложений через COM(DCOM). Как?

в форуме MATLAB

MCKokos

0

58

26 май 2017, 11:12

Дописать продолжеие массива

в форуме Mathematica

Anatol

6

570

04 янв 2013, 14:24

Заполнение массива по спирали

в форуме MathCad

Alexandr_II

2

548

19 дек 2012, 18:11

C++ поменять местами min и max элементы массива

в форуме Информатика и Компьютерные науки

tan_tan

1

1685

07 янв 2014, 19:45

Быстрый поиск элементов массива

в форуме Численные методы

alex345

0

153

26 сен 2014, 15:14

Обращение к элементу массива ячеек

в форуме MATLAB

GriFFoN

0

209

14 апр 2015, 23:35

Поменять местами элементы массива - C++

в форуме Информатика и Компьютерные науки

kgkfdgfk

1

224

25 окт 2016, 16:08

C++ максимальное произведение трех элементов массива

в форуме Информатика и Компьютерные науки

nimus

1

800

29 ноя 2013, 00:47

Отображение двумерного массива через цикл for

в форуме Maple

IOF

6

528

16 ноя 2013, 17:18

C++ Отсортировать по возрастанию простые числа массива

в форуме Информатика и Компьютерные науки

lexus1401

4

2704

29 май 2014, 18:16


Часовой пояс: UTC + 4 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Яндекс.Метрика

Copyright © 2010-2016 MathHelpPlanet.com. All rights reserved