Я написал и использую программу matlab, которая, помимо прочего, генерирует большое количество цифр, обычно используя команду subplot. [Эти цифры представляют собой траектории молекул в экспериментах с одной молекулой, их общее количество неизвестно заранее, но обычно составляет несколько сотен.] Он работал абсолютно гладко до сегодняшнего дня, где я получил следующее сообщение об ошибке:Непонятное поведение конкретной фигуры-подзадачи в matlab
Ошибка при использовании подзаголовка (строка 159) Требуется действительная ось для ввода.
После некоторой ручной отладки, я думаю, я выделил проблему исходя из следующей последовательности:
figure(i)
...
subplot(i)
Где я могу быть любым целым числом. Простой воспроизводимый пример может быть:
i=211;
...
x=linspace(0,1,101);
figure(i)
subplot(211)
plot(x,x)
subplot(212)
plot(x,x)
проблема тождественно включается установка I = 212 в описанном выше случае. Очевидно, что я, возможно, грязно-быстро решить эту проблему с некоторыми
if i=212 || 211
j=something-different-from-212-or-211;
else
j=i;
end
figure(j)
...
Но мне бы хотелось знать, если что-то более удобное/удобный/элегантный существует - и, я бы интересно узнать больше, если это возможно, о причина этой проблемы!
Спасибо!
Создаете ли вы несколько фигур с несколькими осями (подзаголовки) или одну фигуру с несколькими осями? – Erik
Я создаю несколько фигур с несколькими осями. Как правило, у меня есть цикл, работающий по индексу i, как указано выше, и для каждого i я открываю фигуру, содержащую обычно 2,3 или 4 подзаголовка (зависит). (И я не хочу закрывать ранее сгенерированные цифры) –
Вы уверены, что должны использовать как 'figure (i)', так и 'subplot (i)' с той же переменной индексирования 'i'? У вас может не быть одинакового количества цифр и количества осей на всех этих фигурах. Если у вас есть цифры «N», используйте «n = 1: N» с «figure (n)» для изменения/создания фигур, и если на рисунке есть оси «M», то используйте другую переменную индексации подзаголовка для тех Оси «M» (в зависимости от компоновки подзаголовка: количество столбцов и строк осей подзаголовка). – Erik