vector problem , Suma de vectores

1 次查看(过去 30 天)
Como podria dar el valor del segundo vector al primero donde haya 0 , ejemplo lo haga 1 por uno
(solo lo cambie los valores(2) del vector B , rellenen los ( 0 ) del vector A , pero solo hasta la longitud del vector A (length))
por ejemplo:
A=[ 1 0 0 0 0 1 1 0 1 0 0 1 1 1 1 0 0 0 1 0 ];
B=[ 2 0 .5 1.4 0 .88 0 .45 .49 0 0 .23 0 .39 .18 0 0 -0.15 0 -.12 0 -.22 0 1.7 -.25 .41 -.35 -.12 ];
R=[ 1 2 .5 1.4 .88 1 1 .45 1 .49 .23 1 1 1 1 .39 .18 -.15 1 -.22 ];
se que podria ser con un for, pero aun no logro interpretarlo ?
por favor podrian ayudarme
  2 个评论
David Hill
David Hill 2020-8-12
Your example does not make any sense to me. Please explain more clearly.
ALEJANDRO ESPINOZA
ALEJANDRO ESPINOZA 2020-8-12
decia que los valores(2) del vector B ,rellene los ( 0 ) del vector A , pero solo hasta la longitud del vector A (length)

请先登录,再进行评论。

采纳的回答

Cris LaPierre
Cris LaPierre 2020-8-12
编辑:Cris LaPierre 2020-8-13
Con su ejemplo, no necesitas B. Parece que el vector R es el vector A, pero los valores de 0 han sido cambiado a 2. Es esto lo que quieres hacer?
R = A;
R(R==0)=2;
R = 1×25
1 2 2 2 2 1 1 2 1 2 2 1 1 1 1 2 2 2 1 2 1 2 2 1 2
  5 个评论
Cris LaPierre
Cris LaPierre 2020-8-12
% Remplaza los valores de 0 con el valor correspondiente de B
R(A==0) = B(A==0);
% Remplaza los valores de 0 que queda con el valor maximo de B
R(R==0)=max(B)

请先登录,再进行评论。

更多回答(1 个)

David Hill
David Hill 2020-8-12
R=A;
a=A==0;
b=B(B~=0);
R(a)=b(1:nnz(a));

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by