Я использовал функцию spectrogram
в MATLAB, чтобы сгенерировать спектрограмму и сохранить ее непосредственно в виде файла.Затем я использовал тот же wav-файл и тот же способ для генерации другой спектрограммы.Но сначала я сохранил его как файл jpg, а файл jpg сохранил как файл mat.Меня смущает, почему размеры матриц в двух файлах матов различаются: первый - 147*257
double, а второй - 256*256*3
uint8.
%% the first one
[x,fs] = audioread('1.wav')
spectrogram(x, window, L, N, fs);
set(gcf, 'position', [500,500,205,205]);
set(gca, 'Position', [0 0 1 1]);
f = getframe(gcf);
mat = getimage(gcf);
save(['D:\matlab\speech\', strcat(int2str(i)), '.mat'], 'mat', '-v6');
%% the second one
[x,fs] = audioread('1.wav')
spectrogram(x, window, L, N, fs);
set(gcf,'position', [500,500,205,205]);
set(gca,'Position', [0 0 1 1]);
f = getframe(gcf);
mat = getimage(gcf);
imwrite(f.cdata, ['D:\matlab\speech\', int2str(i),'.jpg']);
img_A = imread(fullfile(file_path, strcat(int2str(i), '.jpg')))
save(['D:\matlab\speech\',strcat(int2str(i)), '.mat'], 'img_A', '-v6');
Кто-нибудь знает, почему это происходит??Как правильно сохранить спектрограмму в виде файла мата?