Matlab - Comparar Valores de una matriz con un numero aleatorio r y seleccionar valor de otra matriz

 
Vista:
sin imagen de perfil

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder