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

조회 수: 2 (최근 30일)
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!

채택된 답변

Stephen23
Stephen23 2022년 9월 9일
편집: Stephen23 2022년 9월 9일
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

추가 답변 (0개)

카테고리

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

제품


릴리스

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by