フィルターのクリア

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)
  2 件のコメント
José-Luis
José-Luis 2016 年 9 月 7 日
You want to store the indexes or just get the matrix with the replaced values?
Alexandros Samp
Alexandros Samp 2016 年 9 月 7 日
I want to get the matrix with the replaced values.

サインインしてコメントする。

採用された回答

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 Center および File ExchangeMatrix Indexing についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by