Filter löschen
Filter löschen

need help using the rand function.

1 Ansicht (letzte 30 Tage)
Kel
Kel am 16 Mär. 2014
Kommentiert: Kel am 16 Mär. 2014
hey guys i have got Matlab2010a and i am trying to implement the code below but i can't seem to get it to work. when i run it in matlab, it comes up with an error saying: ??? Error using ==> randperm Too many input arguments.
fo=4 fs=100 ts=1/fs t=0:ts:1-ts n=length(t) y=2*sin(2*pi*fo*t) plot(t,y) numberOfSamplesToTake = 20; sampleIndexes = randperm(numel(y), numberOfSamplesToTake) % Plot the samples; ts = t(sampleIndexes) ys = y(sampleIndexes) hold on; plot(ts, ys, 'r*');

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 16 Mär. 2014
Use:
numberOfSamplesToTake = 20;
a = randperm(numel(y));
sampleIndexes = a(1:numberOfSamplesToTake);
  1 Kommentar
Kel
Kel am 16 Mär. 2014
worked perfectly. i have been struggling with that for a long time. thank you so much.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Jos (10584)
Jos (10584) am 16 Mär. 2014
In recent versions of MatLab, randperm(N,M) randomises the numbers 1:N and takes the first M values. In older versions (like 2010a) you can mimic this functionality by replacing it with these two steps:
A = randperm(N) ;
A = A(1:M) ;

Community Treasure Hunt

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

Start Hunting!

Translated by