Removing specific elements from vector
조회 수: 3 (최근 30일)
이전 댓글 표시
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
채택된 답변
KL
2017년 11월 20일
편집: KL
2017년 11월 20일
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!