Ru-Board.club
← Вернуться в раздел «Программы»

» MathWorks MATLAB

Автор: suslovp
Дата сообщения: 06.04.2012 13:40
xzibit87
ноу проблем, plotyy.
Автор: grin
Дата сообщения: 07.12.2012 07:33
Подскажите пожалуйста. У меня matlab R2012a 64bit, windows 7 64 bit, 6-ти ядерный проц и памяти 16 Gb.
При выполнении скрипта (*.m файла), в котором решается ур. Синус-Гордона, matlab вылетает с ошибкой:
"Out of memory. Type HELP MEMORY for your
options."
Вот, что даёт при этом функция memory:

Maximum possible array: 39117 MB (4.102e+10 bytes) *
Memory available for all arrays: 39117 MB (4.102e+10 bytes) *
Memory used by MATLAB: 1529 MB (1.603e+09 bytes)
Physical Memory (RAM): 16111 MB (1.689e+10 bytes)

* Limited by System Memory (physical + swap file) available

Как такое может быть? Может быть в matlabe есть ограничение на использование памяти?
Помогите отцы.
Автор: MorSe
Дата сообщения: 07.12.2012 09:21
grin

Цитата:
Может быть в matlabe есть ограничение на использование памяти?

Про ограничение прямо написано:

Цитата:
*  Limited by System Memory (physical + swap file) available

Значит, у тебя в процессе выполнения процедуры используется больше 39117 МБ.
Автор: grin
Дата сообщения: 07.12.2012 12:10
MorSe

Тогда что значит это:


Цитата:
Memory used by MATLAB:                1529 MB (1.603e+09 bytes


Т.е. этот объём равен приблизительно 0.1 от общего объёма памяти (16 Gb). При этом ошибка выскакивает во время выполнения A = zeros(N), где N = 300000 double = 9600000 byte

Как-то не сходится.

Добавлено:
Всё. Вопрос решён. Оказывается A = zeros(N) создаёт матрицу NxN. Нужно использовать A = zeros(N, 1).

Спасибо всем!
Автор: Arech
Дата сообщения: 12.01.2015 21:12
(Ндя, ну дабы справедливо не пинали в варезнике, попробую понекромантить тут)

Друзья, а кто-нибудь пробовал расчёт нейросетей в субже, в частности с помощью Neural Network Toolbox?
Интересует прежде всего производительность в сравнении с любыми другими средствами расчёта. Где вы ещё пробовали считать сходные архитектуры сетей и где получалось быстрее?

Почему спрашиваю: вот простейшая kmeans() кластеризация на очень умеренном объёме данных в матлабе вообще не просчиталась за 12 часов. Ровно то же самое в R просчиталось за несколько секунд. Ну, это же за гранью

Сейчас мне надо изобрести классификационную модель для весьма сложных данных. Если у Neural Network Toolbox такая же фигня, то как у kmeans(), то даже пытаться не стоит... Есть у кого опыт в этом деле?

Спасибо!
Автор: bookevg
Дата сообщения: 09.03.2015 11:43
Требуется совет.
Есть модель, созданная в Simulink, которая создана по технологии SubSystems.
В самой модели используется:
1. Элементы SimPowerSystems.
2. Математическая модель синхронного электродвигателя не из SimPowerSystems.
3. Система управления.
Модель развивалась приблизительно с 2008 года по 2012, за это время было замечено развитие самого Simulink:
1. В каких-то версиях Simulink при работе в режиме Accelerator использовались все ядра процессора. При этом скорость моделирования в режиме Accelerator было приблизительна равно скорости моделирования в режиме Rapid Accelerator, в котором всегда использовалось только одно ядро.
2. Современные версии Simulink (как минимум с R2014a, версии 2013 не исследовались, а по более поздним все забыто) используют только одно ядро. При этом скорость моделирования в режиме Rapid Accelerator приблизительно в два раза быстрее, чем в режиме Accelerator.

Возникла необходимость усложнения модели, что очень сложно сделать в текущей модели, если ее не перерабатывать. Перед этим изучил документацию на предмет увеличения скорости вычислений. Пришел к выводу, что необходимо разделить время расчета системы управления и время расчета части модели, относящейся к элементам SimPowerSystems, и к части модели, выполняющей математический расчет синхронного электродвигателя.
Для этого необходимо переработать модель под технологию model reference.

Но возникли ряд нюансов, на которые ищу ответ.
В ходе исследования модели необходимо выводить на построение различные сигналы, при этом не внося в блоки модели существенных изменений. В старой модели это решалось за счет использования шины, на которую выводилось много сигналов, особенно из системы управления.
Но чтобы это сделать в model reference необходимо создать класс bus object, который удобно делать в dictionary.
Но тут возникают сложности. Для примера рассмотрим модель системы управления, в которой может повторяться несколько одинаковых по реализации блоков (например, регуляторы), которые необходимо описать один раз.
Здесь можно пойти несколькими путями:
1. Описать одинаковые блоки в library, а все внутренние состояния блоков вывести на выход, а затем в модели, где они используются скомпоновать их в bus object, затем еще один bus object и т.д., а затем на выход модели. Это возможно благодаря тому, что модель видит dictionary. Главный минус: это компоновка сигналов.
2. Описать одинаковые блоки в library, но придется выход внутренних состояний блока описывать как bus object, при этом к library невозможно подключить dictionary, значит модель, где будет использоваться блоки из library должна быть подключена к dictionary, из которой необходимый bus object в итоге будет получен. Главный минус: library ничего не знает о bus object, т.е. нет видимости, но library позволяет назначать неизвестные имена bus object.
3. Описать блок в виде модели, к которой будет подключен dictionary, таким образом получаем видимость bus object. Затем модель можно включить в library, чтобы можно было использовать маскирование. При помощи скрипта все настройки моделей (если получиться библиотечный элемент model настроить) будут такие как у модели системы управления.
Но все равно есть вопрос: как поведет себя модель системы управления с точки зрения точности моделирования, если она будет состоять из многих моделей?
Автор: Imperator
Дата сообщения: 23.06.2015 23:25
Подскажите какая версия будет меньше тормозить на Pentium M под XP? Сейчас стоит 2007 и несколько секунд думает даже на скриптах из десяти строк. Так же очень долго запускается первый раз. Если ставить без толбоксов, то всё происходит быстрее, но нет функции mean2. В каком она толбоксе?
Автор: Petr777582
Дата сообщения: 04.10.2015 17:38
Помогите построить логическую область на фото.Буду очень признателен!Заранее спасибо! http://www.cyberforum.ru/attachments/582061d1443957537t
Автор: olli123
Дата сообщения: 05.10.2015 13:50

Цитата:
но нет функции mean2. В каком она толбоксе?

Image Processing Toolbox
Автор: smt
Дата сообщения: 15.11.2015 19:13
Добрый вечер!

Кто нибудь имел опыт считывания данных из файла с расширением UFF?
Это такой же текстовый файл просто с определенной структурой. Ни как не могу программу написать что б данные считывались правильно.
Автор: juzver
Дата сообщения: 26.08.2016 14:29
Обнаружил в матлабе баг. Воспроизводится на версиях R2009b x64, R2014a x64, R2015b x86 и x64.

Создаём m-файл (это важно) следующего содержания и запускаем:

Цитата:
A=1:51;
B2=round(5/2)
A2=A(round((end+1)/2))
B22=round(7/2)


Получаем очень странную ошибку на третьей строчке

Цитата:
Error using round
Not enough input arguments.


Если закомментировать вторую строчку, ошибка исчезает. Если скопипастить всё в командное окно, выполняется тоже без ошибок. Пробовал заменить везде round на ceil -- поведение такое же.

Пожалуйста, проверьте на R2016a и/или R2016b prerelease, у кого есть возможность.
Автор: hoop2011
Дата сообщения: 27.08.2016 00:45
juzver
Чтобы не повторятся, высказал свое мнение в теме
Автор: juzver
Дата сообщения: 27.08.2016 04:39

Цитата:
В Matlab 2016a х64 точно, как описано у Вас. Проверил Matlab 6.5 - тоже самое. Чесно говоря я не понимаю, почему этот код вообще работает, если его вставить в командное окно. end - служебное слово (последний элемент массива) и операция end-1 как по мне - абсурд, и скорее всего при работе в командном окне оно воспринимается как последний элемент массива, а при работе из m-файла - как служебное слово, например, конец цикла и др.


hoop2011 end-1 -- предпоследний элемент, нормально здесь всё. Мой код должен брать элемент из середины массива (26), что он и делает, если закомментировать строчку с B2.

Вы также писали, но потом стёрли про A=51:1 (мне пришло в почту). Полагаю, вы хотели поэкспериментировать с A=51:-1:1, иначе получается массив из нуля элементов, и любой индекс будет за его пределами.
Автор: hoop2011
Дата сообщения: 27.08.2016 09:45
juzver

Цитата:
Вы также писали, но потом стёрли про A=51:1 (мне пришло в почту). Полагаю, вы хотели поэкспериментировать с A=51:-1:1, иначе получается массив из нуля элементов, и любой индекс будет за его пределами.

Да так и есть, просто в выражении A=51:1 при своих экспериментах забыл про отрицательный инкремент, должно быть A=51:-1:1. Когда написал, это заметил и исправил сообщение. Порядок величин в матрице A=1:51 или A=51:-1:1 никак не влияет.
Автор: alex00
Дата сообщения: 27.08.2016 17:37
hoop2011

Цитата:
есно говоря я не понимаю, почему этот код вообще работает, если его вставить в командное окно. end - служебное слово (последний элемент массива) и операция end-1 как по мне - абсурд, и скорее всего при работе в командном окне оно воспринимается как последний элемент массива, а при работе из m-файла - как служебное слово, например, конец цикла и др.
Видимо разработчики матлаба абсурдом такое использование end не считают, т.к. с другими функциями это работает и в м-файле, например
A2=A(minus((end+1)/2, 1))

или даже так
function val = myround( input_args )
val = round(input_args);
end

A3=A(myround((end+1)/2))
Автор: hoop2011
Дата сообщения: 27.08.2016 19:34
alex00
Да Вы правы. Посмотрел >>help end

Цитата:
END can also serve as the last index in an indexing expression. In that context, END = SIZE (X,k) when used as part of the k-th index. Examples of this use are, X(3:end) and X(1,1:2:end-1). When using END to grow an array, as in X(end+1) = 5, make sure X exists first.

END(A,K,N) is called for indexing expressions involving the object A when END is part of the K-th index out of N indices. For example, the expression A(end-1, : ) calls A's END method with END (A,1,2).


juzver
А если попробовать
Код: A2=A(round((end+1)/2))

Страницы: 123456789101112

Предыдущая тема: Переставить заново зарегенную прогу.


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.