Matlab - ayuda por favor

 
Vista:

ayuda por favor

Publicado por laura (8 intervenciones) el 18/04/2007 00:04:59
soy nueva trabajando en matlab y tengo que hacer un programa que trabajas con datos d excel, yo leo los datos de excel con el comamdo xlsread eso lo hace bien, pero luego necesito trabajar con cada una de las columnas que tengo en excel por separado yo hice lo siguiente:
e=input('\n introduzca el nombre del archivo .xls\n ','s');
[registros]=xlsread(e);
[p r]=size(registros);
prof=registros(:,1);
min=input('\nIntroduzca el valor minimo (ft) del inervalo que desea estudiar\n\n ','s');
max=input('\nIntroduzca el valor maximo (ft) del intervalo que desea estudiar\n\n ','s');

y por hay se va el programa, pero el programa me pide los valores minimos y maximos y hay se queda entonces me dice que los valores asignados a p y a r nunca los va a poder leer, con esto que yo hice no se supone que p y r representan cada una de las columnas que tengo en los datos de excel????
la verda es que no se si asi debo hacerlo no se mucho de programacion pero me veo en la obligacion de hacer este programa
por favor si alguien podria ayudarme esto es suma importancia para mi y no se que hacer
de antemano muchas gracias
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

RE:ayuda por favor

Publicado por paz (15 intervenciones) el 18/04/2007 00:37:40
p y r representan respectivamente el número de filas y de columnas de la matriz registros.

las columnas de registros son:

1ª columna: registros (:,1)
2ª columna: registros (:,2)
3ª columna: registros (:,3)
....
rª columna: registros (:, p)

No se si esto te puede ayudar.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

gracias paz pero otra pregunta

Publicado por laura (8 intervenciones) el 18/04/2007 00:53:36
el problema es que tengo una serie de datos profundida y un valor de resistividad para cada profundidad, entonces el programa debe pedir al usuario un valores de profundidad minimos y maximo para hacer el intervalo de estudio.
al hacer esto debo tener una nueva matriz eso lo hago mas adelante en el programa por eso p y r que representan profundidad y resistividad deben tener una relacion puedo enviarte lo que he hecho para que lo veas y me digas si es que estoy demasiado perdida y todo esta maa. claro si no es mucho abuso, por favor :-( ya me estoy volviendo loca es que yo no se proggramar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:gracias paz pero otra pregunta

Publicado por paz (15 intervenciones) el 18/04/2007 08:26:43
No entendía muy bien el problema, de hecho sigo sin entender por qué te da fallo.

Enviame lo que tienes hecho si quieres, y le hecho un vistazo. No te prometo nada, pero bueno, cuatro ojos ven más que dos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

muchas gracias

Publicado por laura (8 intervenciones) el 18/04/2007 17:24:47
format short g
global filainf filasup columna
%%archivos de extesión .xls%%%%%%%%
e=input('\n introduzca el nombre del archivo .xls\n ','s');
[registros]=xlsread(e);
[p,r]=size(registros);
prof=registros(:,1);
min=input('\nIntroduzca el valor minimo (ft) del inervalo que desea estudiar\n\n ','s');
max=input('\nIntroduzca el valor maximo (ft) del intervalo que desea estudiar\n\n ','s');
min=str2num(min);
max=str2num(max);
[p r]=size(prof);
for a=1:p; %%%%creacion del intervalo a estudiar
if prof(a,1)==min;
filainf=a;
end
if prof(a,1)==max;
filasup=a;
end
end
for b=1:r;
x=1;
for t=filainf:filasup
columna(x,b)=registros(t,b); %%%creacion de la matriz de intervalo a
x=x+1; %%%a estudiar
end
end


w=size(columna);
y=w(:,2);
for z=1:y;
p(:,z)=columna(:,z);
if z==1:y;
p1=p(:,z); %%%% Separación de los datos de interes en columnas
end
if z==2
p2=p(:,z);
new=figure;
set(new,'name','registros de pozo','numbertitle','off');
subplot(1,r-1,z-1); %%%division del espacio de graficación
plot(p2,p1,'b'),ylabel(nombres(1,1),'fontsize',13),xlabel(nombres(1,2)) %%%%grafico de cada profundida vs cada columna
set(gca,'YDir','reverse') %%%Inverso de la escala de Y
grid on
title('[2]')
whitebg('k')
hold on;
prom2=mean(p2); %%%promedio de cada columna
pp2=p2-prom2; %%%%datos de cada columna nenos el promedio que le corresponde
[min2a2]=min(pp2); %%%%minmo de cada columna
[max2b2]=max(pp2); %%%%maximo de cada columna
valminmax2=[min2 max2];
Rn2=max2-(min2); %%%valor Rn de cada columna
De2=std(p2); %%%%%desviacion estandar de cada columna
st2=Rn2/De2;
end

end

gracias por tener la disposicion de ayudarme
esto solo lee los datos y los organiza o por lo menos eso eslo que trato de hacer tengo otro codigo que toma los datos que salen de aqui y hace lo que realmente necesito pero no lo he podido correr xq primero tiene que correr este
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar