フィルターのクリア

Add values to vector

4 ビュー (過去 30 日間)
AM
AM 2018 年 10 月 9 日
編集済み: Stephen23 2018 年 10 月 9 日
I have the following vectors A and B
A= [20 80 -1 0.1 0.05 0.25 0.13 0.12 0.35 21 70 -1 0.1 0.2 0.7 20 77 -1 0.15 0.15 0.7];
B= [1 1 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1];
And I would like to create vector C
C= [20 80 -1 0.1 0.05 0.25 0.13 0 0.12 0.35 21 70 0 0 -1 0.1 0.2 0 0 0.7 20 77 0 0 0 0 -1 0.15 0.15 0.7];
I use
I=find(B==0);
to find the indices of B where there is a 0 and I thought about inserting a zero in A in those indices but I do not know how. I also thought about somehow replacing the 1 in B by values of A but again I do not how to do this.
Is there any way to do this?
Thanks in advance

採用された回答

Stephen23
Stephen23 2018 年 10 月 9 日
編集済み: Stephen23 2018 年 10 月 9 日
"I also thought about somehow replacing the 1 in B by values of A"
You can use logical indexing. Here is an example that will work if B is either logical or numeric, and does not overwrite the existing variables:
C = double(B);
C(B==1) = A
If B is numeric and you don't mind overwriting its values, then you just need this:
B(B==1) = A
  1 件のコメント
AM
AM 2018 年 10 月 9 日
Oh I see, thank you!

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

その他の回答 (1 件)

Adam
Adam 2018 年 10 月 9 日
B( B == 1 ) = A
  1 件のコメント
AM
AM 2018 年 10 月 9 日
Thank you!

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

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

製品


リリース

R2017b

Community Treasure Hunt

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

Start Hunting!

Translated by