Применить свойства графика ко всем подзаголовкам MATLAB одновременно
Я хотел бы создать фигуру, и как только будут созданы подзаголовки, я хотел бы применить свойства ко всем из них одновременно, не проходя через цикл for. На самом деле, я хотел бы сделать все без необходимости проходить через цикл for:
- создайте все подзаголовки без for-loop. (Например, создайте рисунок с подзаголовками 4x5, не используя for-loop).
 - применить тот же цвет фона для каждого подзаголовка без Фоор-петля.
 - примените одну и ту же команду axis ко всем из них без for-loop. (Как ось равная, ось плотная, etc).
 
есть ли способ сделать это?
2 ответов
самый удобный подход-создать массив осей-ручек, а затем задать свойства:
for i=1:4,
   axesHandles(i) = subplot(2,2,i);
   plot(...)
end
%# set background to black for all handles in the array
%# note that this needs no loop
set(axesHandles,'color','k')
если у вас нет собранных дескрипторов осей, сначала вам нужно собрать массив дескрипторов. Для этого можно использовать дочерние свойства окна рисунок (gcf получает дескриптор текущей активной фигуры)
axesHandles = get(gcf,'children');
и если у вас есть оси на нескольких фигурах, вы можете использовать findall собрать все:
axesHandles = findall(0,'type','axes');
С тех пор, это еще один вызов set или axis, например
set(axesHandles,'color','k','lineWidth',2)
axis(axesHandles,'tight')
Я не могу понять, почему ты так думаешь for петля-это зло, но так или иначе ... 
вот ответ на части 2 и 3 Вашего вопроса, предполагая, что дескрипторы осей были сохранены в массиве:
   a(1) = axes();
   a(2) = axes();
   arrayfun( @(x)(set(x,'Color','r')),a);
   arrayfun( @(x)(axis(x,'equal')),a);
arrayfun применяет функцию к каждому и одним из элементов a. Анонимная функция в этом случае является только ярлыком для написания ее следующим образом:
   a(1) = axes();
   a(2) = axes();
   arrayfun( @SetRedColor ,a);
   arrayfun( @SetAxisEqual,a);
   function SetRedColor(x)
       set(x,'Color','r');
   end
   function SetAxisEqual(x)
       axis(x,'equal');
   end
другой возможный способ-связать оси и установить только одну свойство:
   linkprop(a,'Color');
   set(a(1),'Color','r'); %#Now a(2) color is also red