Replacing values of a vector with values in another vector of a different size

1 view (last 30 days)
Hello,
Essentially I am trying to create a new matrix C that is the size of A, but replaces the 1s in A with the values in B while keeping everything in the same order. If the value in B is inf, I would like for it to be replaced by a 0.
Here is an example of what I am trying to do (the actual vectors are about 600 elements in length):
A = [ 0 0 0 1 1 1 0 0 1 1 0 0 0 ... ]
B = [ 1 2 3 inf 4 ... ]
C = [ 0 0 0 1 2 3 0 0 0 4 0 0 0 ... ]
Any ideas on how I can accomplish this?
Any help is much appreciated, thanks in advance!

Accepted Answer

Stephen23
Stephen23 on 9 Sep 2022
Edited: Stephen23 on 9 Sep 2022
A = [0,0,0,1,1,1,0,0,1,1,0,0,0];
B = [1,2,3,inf,4];
C = double(A);
C(A==1) = B;
C(isinf(C)) = 0
C = 1×13
0 0 0 1 2 3 0 0 0 4 0 0 0

More Answers (0)

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!