Ayuda con matrices y sentencias
Publicado por Jorge Luis (3 intervenciones) el 27/09/2010 01:31:19
Hola compañeros, tengo un problema con Matlab y es que no puedo crear una matriz automatica con unas variables que salen de un for:
El codigo es:
for i=2:vposeval;
eval(['Y' num2str(i) '=y(i)-((m*x(i))+b)']);
end
if vposeval == 2;F=[Y2]
else if vposeval == 3;F=[Y2;Y3]
else if vposeval == 4;F=[Y2;Y3;Y4]
else if vposeval == 5;F=[Y2;Y3;Y4;Y5]
else if vposeval == 6;F=[Y2;Y3;Y4;Y5;Y6]
else if vposeval == 7;F=[Y2;Y3;Y4;Y5;Y6;Y7]
else if vposeval == 8;F=[Y2;Y3;Y4;Y5;Y6;Y7;Y8]
end;end;end;end;end;end;end
El resultado del for son variables
Y1
Y2
Y3 ...
El if me crea una matrz columna dependiendo de la cantidad de variables Y(n) que tenga.
[Y1
Y2
Y3...]
Pero quiero saber si alguien conoce una forma de crear la matriz columna de una manera más eficiente y no restringirme solo hasta 7 posibles casos (maximo en el if), sino hasta cualquiera. (no logro crear el vector columna directamente del for)
Gracias de antemano.
El codigo es:
for i=2:vposeval;
eval(['Y' num2str(i) '=y(i)-((m*x(i))+b)']);
end
if vposeval == 2;F=[Y2]
else if vposeval == 3;F=[Y2;Y3]
else if vposeval == 4;F=[Y2;Y3;Y4]
else if vposeval == 5;F=[Y2;Y3;Y4;Y5]
else if vposeval == 6;F=[Y2;Y3;Y4;Y5;Y6]
else if vposeval == 7;F=[Y2;Y3;Y4;Y5;Y6;Y7]
else if vposeval == 8;F=[Y2;Y3;Y4;Y5;Y6;Y7;Y8]
end;end;end;end;end;end;end
El resultado del for son variables
Y1
Y2
Y3 ...
El if me crea una matrz columna dependiendo de la cantidad de variables Y(n) que tenga.
[Y1
Y2
Y3...]
Pero quiero saber si alguien conoce una forma de crear la matriz columna de una manera más eficiente y no restringirme solo hasta 7 posibles casos (maximo en el if), sino hasta cualquiera. (no logro crear el vector columna directamente del for)
Gracias de antemano.
Valora esta pregunta


0