【发布时间】:2020-01-20 15:14:08
【问题描述】:
我使用了MATLAB中的spectrogram函数来生成谱图并直接保存为mat文件。然后,我使用相同的 wav 文件和相同的方式生成另一个频谱图。但我先将其保存为 jpg 文件,然后将 jpg 文件保存为 mat 文件。我很困惑为什么两个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');
有人知道为什么会这样吗?如何正确将频谱图存储为 mat 文件?
【问题讨论】:
标签: matlab spectrogram mat-file