Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Subscript indices must either be real positive integers or logicals
Replies: 1   Last Post: Feb 11, 2013 6:29 AM

 Jos Posts: 1,268 Registered: 10/24/08
Re: Subscript indices must either be real positive integers or logicals
Posted: Feb 11, 2013 6:29 AM

"Gokul" wrote in message <kfagbg\$i42\$1@newscl01ah.mathworks.com>...
> Hello,
>
> I have written a matlab program on audio processing and im getting the error : Subscript indices must either be real positive integers or logicals.
>
> %Fourier Transform of Sound File
>
> file = 'C:\Program Files\MATLAB\Work\tuning_fork_A4';
>
> Nsamps = length(y);
> t = (1/Fs)*(1:Nsamps); %Prepare time data for plot
>
> %Do Fourier Transform
> y_fft = abs(fft(y)); %Retain Magnitude
> y_fft = y_fft(1:Nsamps/2); %Discard Half of Points
> f = Fs*(0:((Nsamps-1)-1))/Nsamps; %Prepare freq data for plot
>
> %Plot Sound File in Time Domain
> figure
> plot(t, y);
> xlabel('Time (s)');
> ylabel('Amplitude');
> title('Tuning Fork A4 in Time Domain');
>
> %Plot Sound File in Frequency Domain
> figure
> plot(f, y_fft);
> xlim([0 1000]);
> xlabel('Frequency (Hz)');
> ylabel('Amplitude')
> title('Frequency Response of Tuning Fork A4');
>
> and the output is:
>
> ??? Subscript indices must either be real positive integers or
> logicals.
>
> Error in ==> audiofft at 11
> y_fft = abs(fft(y)); %Retain Magnitude
>
>
>
> even for other fft function error repeats,
> kindly help

The command WHOS will show that you have a variable called fft in your workspace ...
CLEAR it before you run the code

Better still: put the code in a function m-file

~ Jos