Установить свойство yaxis (1) и yaxis (2), используя set в вызове arrayfun - PullRequest
0 голосов
/ 27 апреля 2018

Я работаю над изменением значений осей Y двухосного графика. Я был в состоянии установить пределы с помощью следующего, для массива осей (ax):

ax(1).YAxis(1).Limits = [lowLim upLim];

В настоящее время это выполняется в следующем цикле:

for i = 1:length(ax)
    ax(i).YAxis(1).Limits = [lowLim upLim];
end

Проблема в том, что я хочу записать это как arrayfun, а этот синтаксис недопустим:

arrayfun(@(x) x.YAxis(1).Limits = [0 y1max], ax, 'uni', 0);

Я думаю, это должно сработать, если я смогу что-то использовать для эффекта

arrayfun(@(x) set(???, ,[lowLim, upLim]), ax, 'uni', 0);

Однако я не уверен, что получить доступ к свойству Yaxis.Limits можно с помощью set в сценарии такого рода. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 27 апреля 2018

Если нет особой причины использовать YAxis.Limits или arrayfun, set, то работает нормально:

ax(1) = subplot(1, 2, 1);
ax(2) = subplot(1, 2, 2);
set(ax, 'YLim', [lowLim upLim])

Работает как положено.

arrayfun по сути является внутренним циклом и, как правило, менее производительным, чем явный цикл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...