Форум кафедры Техники и Электрофизики Высоких Напряжений

Онлайн-сообщество ТВНщиков
Гостям форума:

Добро пожаловать на форум по технике высоких напряжений!
Для получения доступа ко всем разделам необходимо зарегистрироваться


Текущее время: 17 ноя 2018, 13:55

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Быстрое создание m-файла из matlab
СообщениеДобавлено: 26 янв 2016, 23:11 
Не в сети

Зарегистрирован: 28 фев 2015, 15:34
Сообщения: 33
Часто возникала потребность создать скрипт для построения, например, всего лишь одного графика и чтобы каждый раз не проделывать ряд действий, таких как:
1. Ctrl+N
2. clear close all clc
3. Ctrl+S (Тут сааамое трудно - найти место, где будет лежать ненужный через 5 минут файл, который, скорее всего, пролежит там еще очень долго, до следующей чистки компа от мусора подобного типа (у меня так) )
Я написал скрипт, который по определенному пути создает папку с m-файлом и сразу вписывает в него все нужное и открывает его для редактирования. Очень надеюсь, что не изобрел велосипед и это кому-нибудь пригодится.

Код:
% Создать скрипт
% Путь к папке, где будут храниться все файлы скриптов (в своих папках)
MainPath=('D:\CloudMail\MATLAB\');
% Строка времени и даты, например "26-Jan-2016 21:26:14"
SystemTime = datestr(now);
% Создаем папку с %дата_время% в имени
SystemTime = strrep(SystemTime,':','.');
mkdir(MainPath,SystemTime);
% Прыгаем в эту папку
cd([MainPath,'\',SystemTime]);
% Создаем в только что созданной папке m-фаил
SystemTime = strrep(SystemTime,'.','_');
SystemTime = strrep(SystemTime,' ','_');
SystemTime = strrep(SystemTime,'-','_');
NewFile = fopen(['t',SystemTime,'.m'],'w');
% Вписываем в этот фаил clear, close all, clc
fprintf(NewFile,'clear\nclose all\nclc\n\n');
% Закрываем редактирование фаила
fclose(NewFile);
% Делаем этот фаил текущем в матлабе
edit (['t',SystemTime,'.m'])
clear
clc


Далее на вкладке shortcuts матлаба создается новый ярлык, куда вписывается этот код, и при создании ставится галочка напротив "добавить на панель быстрого доступа".
Вложение:
2.png

Вложение:
1.png


Но! Возникло два вопроса:
1. Возможно ли перенести каретку, в только что созданном файле, в КОНЕЦ строки (чтобы сразу начать печатать), а то знаю только про \r - перенос в начало строки.
2. Можно ли настраивать вкладки? Наиболее интересует единая кнопка закрытия всех вкладок или крайней правой в окне editor'а


У вас нет необходимых прав для просмотра вложений в этом сообщении.

_________________
Намного интереснее жить не зная, чем с ответами, которые, возможно, ложны.
Ричард Ф.Фейнман


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Быстрое создание m-файла из matlab
СообщениеДобавлено: 28 окт 2016, 12:48 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
1. Стандартными средствами MATLAB нет.
2. Давно уже есть (в MATLAB R2012a уже точно было). Достаточно нажать правую кнопку мыши на названии любой вкладки. И будут доступны 3 варианта:
Close All - закрыть все вкладки
Close All Except имя_текущего_файла - закрыть все вкладки, кроме текущей
Close... - закрыть выделенные вкладки (вкладки выделяются флажками в отдельном окне, открывающемся при выборе этой команды)

По поводу кода. Строки кода по формированию части имени нового m-файла
Код:
SystemTime = datestr(now);
SystemTime = strrep(SystemTime,':','.');
SystemTime = strrep(SystemTime,'.','_');
SystemTime = strrep(SystemTime,' ','_');
SystemTime = strrep(SystemTime,'-','_');

можно заменить на что-то подобное:
Код:
SystemTime = datestr(now, 'YYYY-MM-DD hh_mm_ss')
или
Код:
SystemTime = datestr(now, 'YYYY-MM-DD_hhmmss')


И если уж команды в файле всегда одинаковы, не проще ли копировать заранее созданный m-файл в новое место с новым именем?
И зачем столько папок для одного дня?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Быстрое создание m-файла из matlab
СообщениеДобавлено: 25 окт 2018, 18:31 
Не в сети

Зарегистрирован: 28 фев 2015, 15:34
Сообщения: 33
Leonid писал(а):
И если уж команды в файле всегда одинаковы, не проще ли копировать заранее созданный m-файл в новое место с новым именем?
И зачем столько папок для одного дня?


Все это затевалось с одной единственной целью - в любой момент иметь возможность быстро создать скрипт, в котором можно изолированно протестировать какую-либо команду.
Пользуюсь до сих пор, очень удобно: если в большом проекте-скрипте, что-то не работает и непонятно почему, кусок кода копируется и вставляется в созданный временный скрипт (нажатием 1й кнопки). В нем тестируется и вставляется обратно в большой проект-скрипт. А файл закрывается, но не удаляется т.к. иногда можно вспомнить, что где-то что-то такое писалось - зайти в папку с этими временными скриптами и по дате (или по поиску по содержимому) найти. Т.к. при таком подходе никакие файлы не удаляются, то вероятность потерять код - крайне мала). Иногда спасало. Также не появляются такие "тестовые" скрипты в разнообразных местах диска, например, на рабочем столе.

_________________
Намного интереснее жить не зная, чем с ответами, которые, возможно, ложны.
Ричард Ф.Фейнман


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


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

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


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

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB