필터 지우기
필터 지우기

Find Indexes above zero in a matrix and replace thoses indexes with the value of a vector with the same length.

조회 수: 1 (최근 30일)
Hello, I have matrix A=(112,20) size and a vector with V=(112,1) size. I want to find the indexes in every column in A that are above zero and replace them with the value of the vector with the same index.[x z]=find(A(:,1)>0) returns the indexes and also V(x) returns the vectors with the values i want, but i want to do this for A(:,1),A(:,2)...A(:,20) and store those values in a new Matrix B=(:,20)

채택된 답변

Andrei Bobrov
Andrei Bobrov 2016년 9월 7일
편집: Andrei Bobrov 2016년 9월 7일
B = bsxfun(@times,A > 0,V) + A.*(A <= 0);
or
[ii,jj] = find(A > 0);
B = A;
B(sub2ind(size(A),ii,jj)) = V(ii);

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by