MATLAB: отображать 3 или более спектрограмм рядом

Для наглядности мне нужно случайным образом отображать от 3 до 6 спектрограмм в Matlab. У меня есть массив из 800 векторизованных файлов wav, я случайным образом выбираю 3 из них и хочу, чтобы они отображались на рисунке, показывающем спектрограммы каждого рядом:

 load('training_set.mat');
    m = size(X, 1);
    % Randomly select 3 wavs
    rand_indices = randperm(m);
    sel = X(rand_indices(1:3), :);

Я очень новичок в Matlab, и я попытался написать цикл for, который извлекает каждый образец из "sel" и генерирует для него спектрограмму, но я не добился никакого результата. (я использую функцию specgram).


person nanachan    schedule 14.09.2013    source источник


Ответы (1)


Вы можете использовать команду subplot для отображения нескольких графиков бок о бок в одном figure окне:

figure
subplot(131)  % 1st number is # rows 
              % 2nd number is # columns
              % 3rd number is plot index
plot(x1,y1)
subplot(132)
plot(x2,y2)
subplot(133)
plot(x3,y3)

В вашем случае вы можете попробовать

figure
subplot(131)
plot(sel(1,:))
subplot(132)
plot(sel(2,:))
subplot(133)
plot(sel(3,:))
person Buck Thorn    schedule 14.09.2013