Как установить динамический цикл - PullRequest
2 голосов
/ 02 июля 2019

Я новичок в Matlab, и я не знаю, как решить эту проблему. У меня есть массив из 85 дублей, и я хочу просмотреть массив 9 на 9 (то есть: для i=1:9). Я хочу построить затем результаты в цифре (3 * 3). Чтобы объяснить код, я пытаюсь просмотреть ДАННЫЕ, содержащиеся в массивах Start и End, и затем каждый раз отображать спектр мощности, чтобы на выходе было 9 кривых (или я мог бы оставить некоторые кадры).

figure   
for j=1:9  
    BinData=ExtractContinuousData([],Info,[7],Start(j),End(j),[]);
    [S1,t,f]=mtspecgramc(BinData); 
    subplot(3,3,j)
    plot_matrix (S1,t,f);    
end

%Start and End are the arrays that contains the 85 doubles each

Но проблема в том, что я могу нарисовать первые 9 элементов. Если я хочу просмотреть, например, 10-й элемент (j=10), команда plot(3,3,j) не будет работать (т. К. Максимальное значение, которое j может принять в этом случае, равно 9.

1 Ответ

1 голос
/ 02 июля 2019

Проблема в том, что третий вход функции subplot не может превышать произведение первых двух входов. Таким образом, в вашем случае вы хотите сгенерировать сетку 3х3 графиков. Что вы можете сделать, это следующее:

subplot(3,3,mod(j-1,9)+1)

Это вычисление операции по модулю (остаток от деления на 9), таким образом, никогда не будет превышать 9.

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