Error using reshape Size arguments must be integer scalars
6 次查看(过去 30 天)
显示 更早的评论
The code below give me an error message "Error using reshape Size arguments must be integer calars"
n = ending_pts;
phi = (sqrt(5)-1)/2;
theta = 2*pi*phi*(0:n-1);
rho = (1:n).^phi;
[x,y] = pol2cart(theta(:),rho(:));
xy = 10*([x y]-min([x;y]))/(max([x;y])-min([x;y]));
popSize = 60;
numIter = 2e4;
a = meshgrid(1:n);
dmat = reshape(sqrt(sum((xy(a,:)-xy(a',:)).^2,2)),n,n);
[optRoute,minDist] = tsp_ga(xy,dmat,popSize,numIter,1,1);
this line gives the error
dmat = reshape(sqrt(sum((xy(a,:)-xy(a',:)).^2,2)),n,n);
can any one tell me how can i resolve it please!
thanks
3 个评论
Geoff Hayes
2014-5-26
Hi Mika - I wasn't really expecting the above. Have you stepped through the code to see what happens once n is set to ending_pts? It appears that
theta = 2*pi*phi*(0:n-1);
is only a 1x3 vector because ending_pts(1,1) is 3. Is this what you are expecting to happen? Or, how do you expect each row in the input matrix to be handled?
回答(1 个)
udayakumara mg
2019-12-3
% APPLICATION of Zero-Crossing Rate descriptor
%% ---------------------------READING INPUT FILE----------------------------
% 'y': Audio data in the file, returned as an m-by-n matrix, where m is
% the number of audio samples read and n is the number of audio channels in
% the file.
% 'Fs': Sample rate, in Hz, of audio data 'y', returned as a positive scalar.
%'n_samples': Number of total samples of audio data
input_audio = 'uday.wav';
[y,Fs] = audioread(input_audio);
y = y * 2.^15; % original values into integer
n_samples = length(y);
%% --------------------------FRAMING---------------------------------------
% Objective: to segment the audio_input data into frames of fixed length
% 'frame_length': fixed length of the audio frame
% 'n_frames': Number of frames
% 'frames': Array that contains all frames data
% Dimension = (frame_length, n_frames)
% i.e. frames(67,3) : sample 67 of frame 3
frame_length = Fs/40; % Assuming Fs is integer.
% Frame length of 400 ms (for Fs = 16 kHz)
trailing_samples = mod(n_samples, frame_length);
frames = reshape( y(1:end-trailing_samples), frame_length, []);
n_frames = length(frames(1,:));
%% -------------------------Zero-Crossing Rate-----------------------------
[ zcr ] = ZCR( y, frames, n_frames, Fs );
%% -----------------------Hamming Windowing--------------------------------
h = hamming(frame_length);
h = repmat(h,1,n_frames);
w = frames.*h;
w_reshaped = reshape(w, 1, frame_length*n_frames);
%% --------------------------PLOTING---------------------------------------
% Objective: to plot the comparative of the audio input file vs windowed
% signal
figure;
subplot(2,1,1); plot(y); ylabel('Amplitude'); title('Audio input');
subplot(2,1,2); plot(w_reshaped, '.-');
xlabel('time'); ylabel('Amplitude'); title('Windowed signal');
%% -----------------------Energy computation-------------------------------
energy = sum(w.^2);
%% --------------------------PLOTING---------------------------------------
% Objective: to plot the comparative of the audio input file vs signal energy
figure;
subplot(2,1,1); plot(y); ylabel('Amplitude'); title('Audio input');
subplot(2,1,2); plot(energy, '.-');
xlabel('time'); ylabel('Energy (J)'); title('Signal energy');
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Fourier Analysis and Filtering 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!