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

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

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


Текущее время: 17 ноя 2018, 14:29

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
СообщениеДобавлено: 17 апр 2009, 19:39 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Ну, я, пожалуй и начну :-)

Часто в одном графическом окне необходимо построить несколько графиков. Для этого используется функция subplot, которая создаёт то самое графическое окно и разбивает его область на заданное число осей. Даже при 4 осях графики уже становятся мелковаты. Один из способов программно развернуть графическое окно на полный экран (работает точно в версиях 7.*):

Код:
figure('units','normalized','outerposition',[0 0 1 1])


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 17 апр 2009, 19:43 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4258
Откуда: Д-3
Хых, сейчас молитвенный смайлик добавлю на форум :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 17 апр 2009, 19:50 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4258
Откуда: Д-3
:prekl:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 17 апр 2009, 19:52 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Результаты использования данного приёма можно увидеть на скриншотах


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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 17 апр 2009, 19:55 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4258
Откуда: Д-3
Полезная штука, когда надо делать несколько плотов одновременно


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 17 апр 2009, 20:01 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Неудачно получились цвета на верхнем графике. :-(
Конечно, цвет и тип линии не совпадают на одном графике. И это правильно!
Это я цветов пожалел в gif'е. :-)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 17 апр 2009, 20:02 
Не в сети
Site Admin

Зарегистрирован: 03 сен 2008, 16:09
Сообщения: 4258
Откуда: Д-3
Зато можно наблюдать гипер-панель быстрой загрузки Леонид Леонидыча :idea:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 17 апр 2009, 20:04 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Это я еще отрезал половину. :lol:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 04 май 2009, 12:27 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Есть и другой способ.
Можно использовать размеры экрана, получить которые поможет следующий вызов функции get:
Код:
scrSize = get(0,'ScreenSize')


После этого, зная размеры экрана, можно создавать графическое окно любого размера и помещать его в любую точку экрана с помощью свойства Position графического окна.

Например,

Код:
scrsz = get(0,'ScreenSize');
figure('Position',[10 10 scrsz(3)-20 scrsz(4)-80])


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 17 дек 2009, 23:37 
Не в сети
Председатель антиалькогольного комитета, черпает жизненные силы из еды

Зарегистрирован: 26 авг 2009, 14:08
Сообщения: 115
Большое спасибо!
:idea:


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 14 мар 2010, 17:10 
Не в сети
Неунывающая
Аватара пользователя

Зарегистрирован: 19 окт 2009, 13:48
Сообщения: 852
Откуда: Д-3
Leonid писал(а):

Код:
figure('units','normalized','outerposition',[0 0 1 1])


Леонид Леонидович! Скажите, пожалуйста, а эту команду необходимо вставлять перед каждым графическим окном? Или есть модификация, которая применяет эту операцию для каждого графика программы (при разовом написании)?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 14 мар 2010, 23:17 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Цитата:
Скажите, пожалуйста, а эту команду необходимо вставлять перед каждым графическим окном?
Да.
Цитата:
Или есть модификация, которая применяет эту операцию для каждого графика программы (при разовом написании)?
Нет. Но можно схитрить. :yippee:


Вариант 1. Завести переменную fullScr (можно при загрузке сеанса Matlab) и при вызове вставлять эту переменную в качестве одного из параметров функции figure. Несомненное преимущество данного способа в том, что также можно использовать и другие параметры функции figure (например, 'Name') стандартным способом.
Код:
fullScr = struct('units','normalized','outerposition',[0 0 1 1]);

И тогда можно в программе и в командном окне вызывать figure так:
Код:
figure(fullScr);
figure(fullScr,'Name','Распределение чего-то :-)','NumberTitle','off');

Примечание: свойство Name позволяет задавать название графика в заголовке графического окна; свойство NumberTitle управляет надписью Figure # в заголовке графического окна, где # - номер графического окна.


Вариант 2. Создать свою функцию figure_full (можно при загрузке сеанса Matlab). Дополнительные параметры функции используются нестандартным способом (см. пример вызова).
Код:
figure_full = @(paramStruct) figure('units','normalized','outerposition',[0 0 1 1],paramStruct);

И тогда можно в программе и в командном окне вызывать figure так:
Код:
figure_full([]);
figure_full(struct('Name','Распределение чего-то :-)','NumberTitle','off'));

Если дополнительные параметры функции figure не нужны, то в определении figure_full можно убрать параметр paramStruct:
Код:
figure_full = @() figure('units','normalized','outerposition',[0 0 1 1]);

И тогда можно в программе и в командном окне вызывать figure так (и только так!):
Код:
figure_full();



Ну вот как-то так. Пишите, если придумаете что-то еще.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 15 мар 2010, 19:34 
Не в сети
Неунывающая
Аватара пользователя

Зарегистрирован: 19 окт 2009, 13:48
Сообщения: 852
Откуда: Д-3
:prekl:

О, НАИХИТРЕЙШИЙ!

:-) Большое спасибо :-)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 25 окт 2011, 13:33 
Не в сети
Варвар Андреич
Аватара пользователя

Зарегистрирован: 20 май 2009, 17:24
Сообщения: 230
:prekl:

_________________
Мыши плакали, кололись, но продолжали жрать кактус..
Отныне каждое мое сообщение будет проходить двухфазную смысловую и грамматическую проверку. 13.02.13


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 25 окт 2018, 17:49 
Не в сети

Зарегистрирован: 28 фев 2015, 15:34
Сообщения: 33
Еще можно задать значения параметров FigureUnits и FigurePosition по-умолчанию для данного сеанса командой
Код:
set(groot,'defaultFigureUnits','normalized',...
          'defaultFigurePosition',[0 0 1 1])

После этого команда
Код:
plot(x,y)
будет сразу разворачивать окно на весь экран.
Так как после перезагрузки MatLab'а эти настройки сбросятся, то их надо запускать при каждом запуске или добавить в startup.m

Сбросить эти настройки к заводскому значению можно командой:
Код:
set(groot,'defaultFigureUnits','remove',...
          'defaultFigurePosition','remove')

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
СообщениеДобавлено: 26 окт 2018, 00:42 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 03 сен 2008, 17:00
Сообщения: 339
Откуда: Д-4а
Нынче можно и так:
Код:
figure('WindowState','maximized')


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

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


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

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


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

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