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 Kommentare

David Hill
David Hill am 12 Aug. 2020
Your example does not make any sense to me. Please explain more clearly.
ALEJANDRO ESPINOZA
ALEJANDRO ESPINOZA am 12 Aug. 2020
decia que los valores(2) del vector B ,rellene los ( 0 ) del vector A , pero solo hasta la longitud del vector A (length)

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Cris LaPierre
Cris LaPierre am 12 Aug. 2020
Bearbeitet: Cris LaPierre am 13 Aug. 2020

1 Stimme

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 Kommentare

ALEJANDRO ESPINOZA
ALEJANDRO ESPINOZA am 12 Aug. 2020
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 am 12 Aug. 2020
Bearbeitet: Cris LaPierre am 12 Aug. 2020
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 am 12 Aug. 2020
En esta parte que realiza
R(A==0) = B(A==0);
R(R==0)=max(B)
Podrias explicar ?
% 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 am 12 Aug. 2020
Muchas Gracias

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

David Hill
David Hill am 12 Aug. 2020

1 Stimme

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

Kategorien

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by