How can i Reshape columns for 34400x202 table

3 visualizaciones (últimos 30 días)
Ömer Faruk Kilic
Ömer Faruk Kilic el 18 de Abr. de 2021
Comentada: Ömer Faruk Kilic el 20 de Abr. de 2021
I'm trying to write a script for music genre classification. I have two different feature matrixes. First matrix takes 80 wav files for each genres. That makes 800 rows and 202 feature columns. My second feature matrix is wavelet. Wavelet feature matrix takes 80 wav files for each genres but it multiplies it by 43. And that makes 800*43 rows and 202 columns as well. How can i reshape it to 800 rows / 202 columns?
ads = audioDatastore(location,'IncludeSubFolders',true,'LabelSource','foldernames');
countEachLabel(ads)
rng(100);
ads = shuffle(ads);
[adsTrain,adsTest] = splitEachLabel(ads,0.8);
numTrain = countEachLabel(adsTrain)
numTest = countEachLabel(adsTest)
trainLabels = adsTrain.Labels;
testLabels = adsTest.Labels;
sn = waveletScattering('SignalLength',2^19,'SamplingFrequency',22050,'InvarianceScale',0.5);
N = 2^19;
batchsize = 64;
scTrain = [];
useGPU = true; % Set to true to use the GPU
while hasdata(adsTrain)
sc = helperbatchscatfeatures(adsTrain,sn,N,batchsize,useGPU);
scTrain = cat(3,scTrain,sc);
end
numTimeWindows = size(scTrain,2);
Nkeep=202; % size to keep
[~,npaths] = sn.paths();
Npaths = sum(npaths);
TrainFeaturesWavelet = permute(scTrain,[2 3 1]);
TrainFeaturesWavelet = reshape(TrainFeaturesWavelet,[],Npaths,1); % wavelet time scattering
TrainFeaturesWavelet = (TrainFeaturesWavelet(1:end,1:Nkeep));
numTrainSignals = numel(trainLabels);
trainLabelsWavelet = repmat(trainLabels,1,numTimeWindows);
trainLabelsWavelet = (reshape(trainLabelsWavelet',numTrainSignals*numTimeWindows,1));
I attached label matrices as png. My point is, in normal train label matrix it goes by blues, clas, disco.... But in wavelet, it goes by same variables but; blues*43 , clas*43, disco*43..
  2 comentarios
Sargondjani
Sargondjani el 18 de Abr. de 2021
It is not clear to me what you want...
Ömer Faruk Kilic
Ömer Faruk Kilic el 20 de Abr. de 2021
I mean, i have two different feature matrices. I want to get that 2 matrices in 1 matrix. But my first matrix is 800 rows 202 columns, second matrix is 800*43 rows and 202 columns as well. My second matrix uses same inputs by multiplying 43. I mean for the second matrix, first 80 rows has to be blues and second 80 disco... But it goes as 80*43=3440 rows for blues and 3440 rows for disco and it goes like that. I want to pretend that "multiplying 43" thing. at the end of the day i'm trying to get 1 matrix as 800 rows and 404 columns ---->
800x202 + 800x202
(first matrix) (second matrix which has 43 problem)

Iniciar sesión para comentar.

Respuestas (0)

Categorías

Más información sobre Denoising and Compression en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by