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 日

1 投票

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 件のコメント

ALEJANDRO ESPINOZA
ALEJANDRO ESPINOZA 2020 年 8 月 12 日
No, en si b tiene distintos valores , solo era un ejemplo de como podria sustituir los valores > y < a 0 de b dentro de los valores (0) de A con su misma longitud
Cris LaPierre
Cris LaPierre 2020 年 8 月 12 日
編集済み: Cris LaPierre 2020 年 8 月 12 日
Me parece que hayas equivocado en algunos valores de R (indicado con "^").
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 ];
^ ^ ^ ^ ^ ^
Mi resultado:
1 2 .5 1.4 2 1 1 .45 1 2 2 1 1 1 1 2 2 -0.15 1 -0.12
Lo que hice:
R = A;
R(A==0) = B(A==0);
R(R==0)=max(B)
ALEJANDRO ESPINOZA
ALEJANDRO ESPINOZA 2020 年 8 月 12 日
En esta parte que realiza
R(A==0) = B(A==0);
R(R==0)=max(B)
Podrias explicar ?
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)
ALEJANDRO ESPINOZA
ALEJANDRO ESPINOZA 2020 年 8 月 12 日
Muchas Gracias

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

その他の回答 (1 件)

David Hill
David Hill 2020 年 8 月 12 日

1 投票

R=A;
a=A==0;
b=B(B~=0);
R(a)=b(1:nnz(a));

製品

Community Treasure Hunt

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

Start Hunting!

Translated by