Обработка определенного вектора из массива

Обсуждение вопросов, связанных с Simulink

Модератор: Admin

Рашид
Пользователь
Сообщения: 49
Зарегистрирован: Пн янв 21, 2013 6:47 pm

Обработка определенного вектора из массива

Сообщение Рашид » Пн ноя 20, 2017 5:06 am

Здравствуйте, коллеги.

В моей модели Симулинк я получаю массив 1537х1х4, то есть я так понял четыре вектора-столбца с 1537 элементами. Каким блоком можно выбирать определенный вектор из массива, чтобы потом его обрабатывать в этой же модели?

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Обработка определенного вектора из массива

Сообщение sandy » Пн ноя 20, 2017 7:58 am

Selector
С уважением

Александр Сергиенко

chernykh
Эксперт
Сообщения: 4526
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Обработка определенного вектора из массива

Сообщение chernykh » Пн ноя 20, 2017 8:10 am

Submatrix
Черных И.В.
Уральский федеральный университет им. Б. Н. Ельцина
Приглашаю к сотрудничеству: http://urfu.ru/ru/science/stimul-pablik
Связь через ЛС.

Рашид
Пользователь
Сообщения: 49
Зарегистрирован: Пн янв 21, 2013 6:47 pm

Re: Обработка определенного вектора из массива

Сообщение Рашид » Вт ноя 21, 2017 7:44 am

chernykh писал(а):Submatrix


Насколько я понял блок Submatrix предназначен для выделения подматрицы из матрицы. А у меня массив - четыре блока 1537х1. И мне нужно выбрать 2, 3 или 4.
Или я может чего не догоняю?

chernykh
Эксперт
Сообщения: 4526
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Обработка определенного вектора из массива

Сообщение chernykh » Вт ноя 21, 2017 9:04 am

четыре вектора-столбца с 1537 элементами

Каким блоком можно выбирать определенный вектор из массива

Вектор - это матрица-столбец.
Черных И.В.
Уральский федеральный университет им. Б. Н. Ельцина
Приглашаю к сотрудничеству: http://urfu.ru/ru/science/stimul-pablik
Связь через ЛС.

Рашид
Пользователь
Сообщения: 49
Зарегистрирован: Пн янв 21, 2013 6:47 pm

Re: Обработка определенного вектора из массива

Сообщение Рашид » Вт ноя 21, 2017 12:14 pm

chernykh писал(а):Вектор - это матрица-столбец.


Согласен, вектор - это матрица-столбец. Но я же получаю массив, а не матрицу. На вход блока Submatrix поступает вектор 1537х1 четыре раза. И мне необходимо взять второй, третий или четвертый вектор. Можно ли при помощи блока Submatrix сделать это?

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Обработка определенного вектора из массива

Сообщение sandy » Вт ноя 21, 2017 2:12 pm

Судя по тому, что вы написали в первом сообщении, массив у вас трехмерный. Блок Submatrix не умеет работать с трехмерными массивами. Поэтому или сначала удалите лишнее (второе, т.к. размер вдоль него равен единице) измерение с помощью Squeeze, либо используйте блок Selector, он с массивами любой размерности работает.
С уважением



Александр Сергиенко

Рашид
Пользователь
Сообщения: 49
Зарегистрирован: Пн янв 21, 2013 6:47 pm

Re: Обработка определенного вектора из массива

Сообщение Рашид » Вт ноя 21, 2017 3:55 pm

sandy писал(а):Судя по тому, что вы написали в первом сообщении, массив у вас трехмерный. Блок Submatrix не умеет работать с трехмерными массивами. Поэтому или сначала удалите лишнее (второе, т.к. размер вдоль него равен единице) измерение с помощью Squeeze, либо используйте блок Selector, он с массивами любой размерности работает.


Вот если читать книгу Солониной "Цифровая обработка сигналов", то по примеру на рисунке 7.9 все должно получится. Однако реально у меня в настройках блока Selector нету параметра "Sample time".
Матлаб вроде свежий - 2017.

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Обработка определенного вектора из массива

Сообщение sandy » Вт ноя 21, 2017 4:45 pm

нету параметра "Sample time"

А зачем вам он там??
С уважением



Александр Сергиенко

Рашид
Пользователь
Сообщения: 49
Зарегистрирован: Пн янв 21, 2013 6:47 pm

Re: Обработка определенного вектора из массива

Сообщение Рашид » Ср ноя 22, 2017 5:48 am

sandy писал(а):
нету параметра "Sample time"

А зачем вам он там??


Честно, пока сам не знаю. Но я уже голову сломал. Помогите.
Блок Selector только может вычленить часть элементов из вектора. И в результате получается например, 5х1х4. Но выделить нужный мне вектор (2,3 или 4-ый) из всего массива 1537х1х4 не получается.

Блок Squeeze вообще тоже самое выдает мне - 1537х1х4. В чем его смысл я так и не понял. В нем нету даже никаких настроек.

Еще раз обрисую задачу. В модели на вход блока To Workspace приходит последовательность [1537х1]. И в результате в рабочей области образуется массив 1537х1х4. Мне же в модели нужно выбрать 2, 3 или 4-ю последовательность [1537х1]. Как это сделать?

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Обработка определенного вектора из массива

Сообщение sandy » Ср ноя 22, 2017 8:23 am

Еще раз обрисую задачу. В модели на вход блока To Workspace приходит последовательность [1537х1]. И в результате в рабочей области образуется массив 1537х1х4.

В исходном сообщении вы писали другое: "В моей модели Симулинк я получаю массив 1537х1х4". Теперь же выясняется, что никакого трехмерного массива в вашей МОДЕЛИ нет, и третье измерение появляется только в WORKSPACE. То есть третье измерение, размер по которому равен 4 - это время?
С уважением



Александр Сергиенко

Рашид
Пользователь
Сообщения: 49
Зарегистрирован: Пн янв 21, 2013 6:47 pm

Re: Обработка определенного вектора из массива

Сообщение Рашид » Ср ноя 22, 2017 8:30 am

sandy писал(а): Теперь же выясняется, что никакого трехмерного массива в вашей МОДЕЛИ нет, и третье измерение появляется только в WORKSPACE. То есть третье измерение, размер по которому равен 4 - это время?


Прошу прощения. Я просто пока не силен в Матлабе поэтому подумал что в WORKSPACE я получаю массив. Третье измерение я думаю, да - время.

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Обработка определенного вектора из массива

Сообщение sandy » Ср ноя 22, 2017 11:20 am

Так что же вам тогда все-таки нужно сделать? И, самое главное, где - в модели Simulink или в массиве, полученном в результате ее работы в рабочей области?
С уважением



Александр Сергиенко

Рашид
Пользователь
Сообщения: 49
Зарегистрирован: Пн янв 21, 2013 6:47 pm

Re: Обработка определенного вектора из массива

Сообщение Рашид » Ср ноя 22, 2017 12:21 pm

sandy писал(а):Так что же вам тогда все-таки нужно сделать? И, самое главное, где - в модели Simulink или в массиве, полученном в результате ее работы в рабочей области?


Мне нужно взять вектор (1537х1) 2, 3 или 4-ый в модели Симулинк. Вот в чем загвоздка.

И найти в нем наибольшее значение элемента - но это я думаю сделаю.

sandy
Эксперт
Сообщения: 5601
Зарегистрирован: Ср сен 22, 2004 4:49 pm

Re: Обработка определенного вектора из массива

Сообщение sandy » Ср ноя 22, 2017 1:29 pm

Что означает "взять", если 1, 2, 3, 4 - это время, я не понимаю. А в остальное время что модель должна делать?

Найти максимум в векторе - не проблема, просто на блок Maximum этот сигнал подайте.
С уважением



Александр Сергиенко