Removing specific elements from vector
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Miroslav Mitev
am 20 Nov. 2017
Kommentiert: Miroslav Mitev
am 20 Nov. 2017
I have an exponentially distributed vector "F" with "M" values. I need to remove "K" amount of values from "F" starting from the smallest values and I also need the vectors "a" and "a_d" that gives the values of "F" and "F_d" in descending order, respectively.
Everything works fine with my code, but I want "F_d" to be vector with "N" values, instead it gives me "M" values and on the "K" positions that I want to remove it puts Zeros. I know I can just remove the Zeros, but how can I make it work properly?
M=32;
K=1;
N=M-K;
F=exprnd(1,1,M);
[a, index] = sort(F,'descend');
a_d=a(1:end-K);
F_d(index(1:N))=a_d;
0 Kommentare
Akzeptierte Antwort
KL
am 20 Nov. 2017
Bearbeitet: KL
am 20 Nov. 2017
Your question is not very clear. First you're defining, M,K,N and F,
M=32;
K=1;
N=M-K;
F=exprnd(1,1,M);
Now you want to remove K elements from F starting smallest. But what is F_d? is it the sorted F in descending order? If so,
[F_d, index] = sort(F,'descend');
If you want to remove K elements from F, but the smallest ones, then,
F = F_d(index(1:N));
Now if you also want to remove K elements,
F_d = F_d(1:N);
now what is a and a_d? The values of F and F_d are stored in F and F_d.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!