Add values to vector
5 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
采纳的回答
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 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!