Matlab - "Filename must be a string."

   
Vista:

"Filename must be a string."

Publicado por alvaro (23 intervenciones) el 12/12/2013 04:14:03
Amigos, tengo la siguiente funcion que llame "multiple"


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function multiple(name)
 
[datos,~,alldata]=xlsread(name,'Hoja1');
 
latitud_lim=667100;
lo=datos(:,6);
la=datos(:,5);
lon=lo(~isnan(lo));
laa=la(~isnan(lo));
%TRANSFORMACION DE DATOS DESDE G°M A G°
long=-(floor(lon/1000000)+(lon/1000000-floor(lon/1000000))*100/60);
lat=-(floor(laa/1000000)+(laa/1000000-floor(laa/1000000))*100/60);
 
n=length(lat);
 
 
for i=1:n
    lati(i:n)=lat(i);
    longi(i:n)=long(i);
end
 
xlswrite(name,lati','Hoja2','B2');                                 %latitud en grados
xlswrite(name,longi','Hoja2','C2');                                %longitud en grados




que realiza cálculos de datos de documentos excel (es mas extensa pero la resumo para consultar lo que necesito). Lo que intento es que dentro de un ciclo for , esta funcion pueda ejecutarse para varios nombres de archivos excel. Para esto pude crear un vector "A" con los nombres que necesito,

A=

'Ab-01-2010 q18.xlsx'
'Ab-01-2010 q11.xlsx'
'Ab-01-2010 q12.xlsx'
'Ab-01-2010 q30.xlsx'

sin embargo cuando ejecuto esta funcion

>> multiple(A(1))

Error using xlsread (line 122)
Filename must be a string.

Error in multiple (line 2)
[datos,~,alldata]=xlsread(name,'Hoja1');


como lo puedo solucionar???
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
Imágen de perfil de Dave

"Filename must be a string."

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 12/12/2013 04:34:34
Estimado Alvaro;

Es muy probable que tu error se esté produciendo por los nombres de los archivos, normalmente Matlab no acepta espacios o guión medio como parte del nombre de un archivo.

Te sugiero que pruebes cambiando los nombres de tus archivos de tal forma que no tengan espacios en blanco, ni guión medio, pero si podrías usar guión bajo.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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

"Filename must be a string."

Publicado por Fernando (2 intervenciones) el 12/12/2013 04:57:00
¿No puede ayudarme a mi estoy tratando de convertir mi programa a una interface gráfic pero no entiendo como programar los botones? Soy el que puso el programa mecanico abajo
%Sistema Masa-Resorte-Amortiguador
%Constantes a utilizar
%M -> Masa del móvil
%K -> Constante Elástica del Resorte
%C -> Coeficiente de Amortiguamiento
%f(t) -> Fuerza aplicada al sistema
%y(t) -> Desplazamiento de la masa {Salida del Sistema}

%La ecuación que modela el sistema esta descrita por un sistema fisico en
%equilibrio

%f(t) = M*a(t) + C*v(t) + K*y(t)

%Donde
%a(t) = y''(t)
%v(t) = y'(t)

%Supondremos para este ejercicio que las condiciones iniciales del sistema
%son 0 para t = 0, es decir, se encuentran en reposo.

%Comienzo del Código de Matlab
display('Simulacion de la respuesta de un Sistema Masa-Resorte-Amortiguador')
%Variables Simbólicas
syms t
y = sym('y(t)');
y1 = sym('diff(y(t),t)');
y2 = diff(y1,t);

%Declaración de Constantes
display('Datos del Sistema')
M = input('Ingrese la masa del Móvil: ');
C = input('Ingrese el Coeficiente de Amortiguamiento: ');
K = input('Ingrese la Constante Elástica del Resorte: ');


%Declaración de la función
display('Función del Sistema')

f = M*y2 + C*y1 + K*y

%Transformada de Laplace
lf = laplace(f);

%Sustitución de Condiciones Iniciales
nf = subs(lf,{'D(y)(0)','y(0)'},{0,0});
display('Transformada F(s)')
Fs = subs(nf,{'laplace(y(t), t, s)'},{'Y(s)'})
Fs = collect(Fs,'Y(s)');

%Función de transferencia
Hs = 'Y(s)'/Fs;

[num den] = numden(Hs);

num = sym2poly(num);
den = sym2poly(den);

H = tf(num, den)

%Diagrama de Polos y Ceros
pzmap(H),title('Mapa de Polos - Ceros'), sgrid

damp (H);

if isstable(H)
display('El Sistema es Estable, sus Polos se encuentran del lado izquierdo')
else
display('El Sistema es Inestable Guapura')
end

display('Presiona cualquier tecla para continuar...')
pause

%Respuesta a un Escalon Unitario
display('Respuesta en Escalon Unitario')
display('Entrada del Sistema')
xt = heaviside (t)
display('Transforada de Laplace de la Entrada')
Xs = laplace(xt)

%Producto de Función de transferencia y Excitación
display('Salida del Sistema con Escalon Unitario')
Ys = Hs*Xs

[num den] = numden(Ys);

num = sym2poly(num);
den = sym2poly(den);

%Fracciones parciales
[r, p, k] = residue(num, den);

%Transformada Inversa de Laplace
display('Transformada Inversa')
yt = ilaplace(Ys)

%Respuesta en el Tiempo para Escalon Unitario
display('Salida del Sistema en el Dominio del Tiempo')
pretty(yt)

%Graficación de la Respuesta

%Linea de Tiempo
wn=sqrt(K/M);
t=linspace(0.5*(2*pi/wn),300);
%Función Escalon Unitario
fst=ones(size(t));
%Simulacion de la Respuesta del Sistema H, al estimulo fst
y=lsim(H,fst,t);

%Grafica de la Respuesta
figure,plot(t,y,'linewidth',2),title('Respuesta de Sistema a un Escalon Unitario')
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
Imágen de perfil de Dave

"Filename must be a string."

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 12/12/2013 05:15:55
Hola Fernando;

Claro que puedo ayudarte, envíame tu código a mi correo electrónico, y veré en que puedo ayudarte o si la cosa es muy compleja, te podría ofrecer mis servicios de programación.

Entonces, me escribes a correa.dave30@gmail.com.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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

"Filename must be a string."

Publicado por Fernando (1 intervención) el 12/12/2013 05:24:14
Ok lo envío
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

"Filename must be a string."

Publicado por alvaro (23 intervenciones) el 13/12/2013 01:38:59
cambie los nombres de los archivos, sin embardo sigue ocurriendo el mismo error u.u
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
Imágen de perfil de Dave

"Filename must be a string."

Publicado por Dave correa.dave30@gmail.com (934 intervenciones) el 13/12/2013 10:52:00
Hola Alvaro;

Sería bueno que trates de leer un archivo Excel de otro tipo, quizás el grupo de archivos tienen un formato especial o algo parecido.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
correa.dave30@gmail.com
Servicios de Programación Matlab
http://fismatlab.blogspot.com/
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