![sin imagen de perfil sin imagen de perfil](/img/anonymouse.png)
Comparar Valores de una matriz con un numero aleatorio r y seleccionar valor de otra matriz
Publicado por Marco Antonio (61 intervenciones) el 01/11/2017 01:30:09
Buenas hace algún tiempo pedí que me ayudaran con un problema, Tengo tres matrices x7 x8 y P2 lo que quiero es comaprar el primer valor de la matriz x8 con todos los valores de la matriz x8 y que el numero que sea menor o igual me coloque el valor de la matriz P2 el que esta en la misma pocicion.
P2 =
2.015356562745332
2.575112927157477
3.676029685075537
6.252033861205156
7.716851566137702
4.304465365374339
1.303143806006364
6.853008997027008
1.281445852135066
-7.728272986603820
x7 =
0.102510950043736
0.151756271587957
0.154114777529121
0.267335291644112
0.323498795099100
0.438949445988361
0.575468927660658
0.704501768826521
0.847722924741284
1.000000000000000
x8 =
0.120859571098558
0.862710718699670
0.484296511212102
0.844855674576263
0.209405084020935
0.552291341538775
0.629883385064421
0.031991015762567
0.614713419117141
0.362411462273053
Y me respondieron que con este código lo podía hacer
x9(1)=0;
for i=1:size(x8,1)
for j=1:size(x8,1)
if x8(i,1)<=x7(j,1)
x9(i,1)=P2(j,1);
break
end
end
end
el problema que tengo ahora es que el codigo propuesto funciona bien para cuando las dimenciones de x9 son 10 filas y una columna que es lo que yo queria pero ahora requiero que el codigo produsca una matriz de 9 filas por una columna e tratado de hacerlo sin suerte.
mustro lo que hice
valor_correspondiente1=6.252033861205156
x9(1)=0;
for i=1:size(x8,1)-1
for j=1:size(x8,1)-1
if x8(i,1)<=x7(j,1)
x9(i,1)=P2(j,1);
break
end
end
end
x9
x9(end+1,1)=valor_correspondiente1
pero esto es parte de un programa que se repite por ejemplo 10 veces donde P2 cambia con cada iteracion y al final de las iteraciones veo que x9 esta desproporcionada y algunas veces me da error. x9 deberia ser 9 filas y una columna y esto es lo que pasa cuando corro en programa x9 ahora vale 205 filas por una columna, y me estanque.
espero que me puedan ayudar muchas gracias de antemano
P2 =
2.015356562745332
2.575112927157477
3.676029685075537
6.252033861205156
7.716851566137702
4.304465365374339
1.303143806006364
6.853008997027008
1.281445852135066
-7.728272986603820
x7 =
0.102510950043736
0.151756271587957
0.154114777529121
0.267335291644112
0.323498795099100
0.438949445988361
0.575468927660658
0.704501768826521
0.847722924741284
1.000000000000000
x8 =
0.120859571098558
0.862710718699670
0.484296511212102
0.844855674576263
0.209405084020935
0.552291341538775
0.629883385064421
0.031991015762567
0.614713419117141
0.362411462273053
Y me respondieron que con este código lo podía hacer
x9(1)=0;
for i=1:size(x8,1)
for j=1:size(x8,1)
if x8(i,1)<=x7(j,1)
x9(i,1)=P2(j,1);
break
end
end
end
el problema que tengo ahora es que el codigo propuesto funciona bien para cuando las dimenciones de x9 son 10 filas y una columna que es lo que yo queria pero ahora requiero que el codigo produsca una matriz de 9 filas por una columna e tratado de hacerlo sin suerte.
mustro lo que hice
valor_correspondiente1=6.252033861205156
x9(1)=0;
for i=1:size(x8,1)-1
for j=1:size(x8,1)-1
if x8(i,1)<=x7(j,1)
x9(i,1)=P2(j,1);
break
end
end
end
x9
x9(end+1,1)=valor_correspondiente1
pero esto es parte de un programa que se repite por ejemplo 10 veces donde P2 cambia con cada iteracion y al final de las iteraciones veo que x9 esta desproporcionada y algunas veces me da error. x9 deberia ser 9 filas y una columna y esto es lo que pasa cuando corro en programa x9 ahora vale 205 filas por una columna, y me estanque.
espero que me puedan ayudar muchas gracias de antemano
Valora esta pregunta
![Me gusta: Está pregunta es útil y esta clara Me gusta: Está pregunta es útil y esta clara](/img/img.png?11.51)
![NO me gusta: Está pregunta no esta clara o no es útil No me gusta: Está pregunta no esta clara o no es útil](/img/img.png?11.51)
0