_sda 0 17 августа, 2019 Опубликовано 17 августа, 2019 (изменено) · Жалоба Всем доброго дня! Столкнулся с тем что следующая строчка выполняется 20 секунд! sig = double(sym(ArrayData)); Размер ArrayData - 12288 ячеек Это нормально или я что-то делаю не так? Может есть альтернативный приемлемый вариант преобразования? Изменено 17 августа, 2019 пользователем Rst7 Очистил форматирование Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 17 августа, 2019 Опубликовано 17 августа, 2019 · Жалоба 25 минут назад, _sda сказал: Всем доброго дня!Столкнулся с тем что следующая строчка выполняется 20 секунд! sig = double(sym(ArrayData)); Размер ArrayData - 12288 ячеек Это нормально или я что-то делаю не так? Может есть альтернативный приемлемый вариант преобразования? Это нормально, только может быть проще сделать вот так: cell2mat(ArrayData)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 17 августа, 2019 Опубликовано 17 августа, 2019 · Жалоба Спасибо! Не работает, однако. А как же согласовать эти размеры матриц? ArrayData формируется так: in = fscanf(fid, '%c',inf); fclose(fid); m = cellstr(in); m(cellfun(@isempty,m)) = {' '}; af = cell2mat(m.'); ArrayData = regexp(af,'([0-9-])+','match')'; Может это всё можно по другому сделать?Скрипт писал лет 10 назад, сейчас уже не помню ничего... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 17 августа, 2019 Опубликовано 17 августа, 2019 · Жалоба Тогда вот так: sig = str2num(char(string(ArrayData))); Или, если пропустить regexp(...), то сразу sig = str2num(af) Не мгновенно, но вроде быстрее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 19 августа, 2019 Опубликовано 19 августа, 2019 · Жалоба В 17.08.2019 в 20:04, Самурай сказал: Тогда вот так: sig = str2num(char(string(ArrayData))); Или, если пропустить regexp(...), то сразу sig = str2num(af) Не мгновенно, но вроде быстрее. Спасибо огромное! Только не "вроде быстрее", а раз в 20 быстрее... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 2 сентября, 2019 Опубликовано 2 сентября, 2019 · Жалоба Коллега, а не сможете ли помочь ещё в одном месте? Как можно выйти из цикла по нажатию клавиши? Обычная пара Ctrl+C не годится, в цикле есть функция которая всегда должна быть выполнена полностью. И только после этой функции можно выходить из цикла. Пробовал функцию onCleanup, как советуют в сети , но не вышло. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Самурай 12 3 сентября, 2019 Опубликовано 3 сентября, 2019 · Жалоба https://www.mathworks.com/matlabcentral/fileexchange/20455-stoploop-v1-0-jun-2008 https://www.mathworks.com/matlabcentral/fileexchange/30622-non-wait-detection-of-keyboard-input-including-mex-implementation https://www.mathworks.com/matlabcentral/answers/80775-how-do-i-exit-a-loop-with-a-key-hit https://www.mathworks.com/matlabcentral/answers/308386-create-keyboard-listener-to-interrupt-a-running-function https://www.mathworks.com/matlabcentral/answers/100980-how-do-i-write-a-loop-in-matlab-that-continues-until-the-user-presses-any-key https://www.mathworks.com/matlabcentral/answers/41417-break-out-of-while-loop-with-esc-key https://stackoverflow.com/questions/23788722/stop-a-infinite-while-loop-pressing-a-key-in-matlab Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 3 сентября, 2019 Опубликовано 3 сентября, 2019 · Жалоба Спасибо огромное! Как то не догадался посмотреть на сайте... Особенно понравилась третья ссылка в списке! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться