Dear all,
I'm trying to convert a script originally written in Matlab and saved as
an .m file to Scilab using the function mfile2sci. However, I don't get
any .sci file. I get a .cat file which contains mostly the comments
without the comment sign //. I get also a .log file with a brief job
summary, indicating that no conversion was performed since "file
contains no instruction", which is not the case. I'm attaching the
original m file and the .cat and .log files.
Am I doing anything wrong?
I've tried to change the options (recursive mode, etc.)with no success.
I'm using 6.0.2.
Regards,
Federico Miyara
--
El software de antivirus Avast ha analizado este correo electrónico en busca de
virus.
https://www.avast.com/antivirus
audiometro1.cat
Description: application/vnd.ms-pki.seccat
** Beginning of mfile2sci() session **
File to convert: D:/work/audiometro1.m
Result file path: D:/WORK_S~1/
Recursive mode: ON
Only double values used in M-file: NO
Verbose mode: 3
Generate formatted code: NO
M-file reading...
M-file reading: Done
Syntax modification...
Syntax modification: Done
File contains no instruction, no translation made...
** End of mfile2sci() session **
% Audiómetro
%
% Determinación de umbrales audiométricos con auricular HDA 200
%
%
% Autor: Federico Miyara
% Fecha: 2011-04-11
%2011-05-16
%2011-08-09
% Duración de cada estímulo
T = 5;
% Redondeo a múltiplo de 0.2 s
T = round(T/0.2)/5;
% Tasa de muestreo
Fs = 44100;
% Frecuencias audiométricas
fa = [125 250 500 1000 2000 4000 8000];
% Frecuencias audiométricas en orden pseudoaleatorio
fa_pa = [500 2000 250 1000 8000 125 4000];
% Índices de las frecuencias audiométricas en orden pseudoaleatorio
I = [3 5 2 4 7 1 6];
% Vector de tiempos correspondiente a la duración de cada parte activa
% (ON) o silencio (OFF) de la señal
T1 = [0:Fs/10-1]/Fs;
% Inicialización de la matriz de señales
% Cada fila contendrá una señal audiométrica consistente en T/0.2 tonos
% de la correspondiente frecuencia audiométrica y amplitud 1 durante
% 100 ms separados por silencios de igual duración. Cada tono tiene un
% fade-in y un fade-out para evitar clicks
x = zeros(7, T*Fs);
% Creación de la matriz de señales descripta
for k=1:7
% Tono de frecuencia fa(k)
seno = sin(2*pi*fa(k)*T1);
% Agregado de fade-in
seno(1:132) = seno(1:132).*[0:131]/132;
% Agregado de fade-out
seno(end-131:end) = seno(end-131:end).*[131:-1:0]/132;
% Repetición
for h=1:round(5*T)
x(k, [(h-1)*Fs/5 + 1:(h-1)*Fs/5 + Fs/10]) = seno;
end
end
% A continuación se pide ingresar una frecuencia audiométrica
% y un nivel de presión sonora y luego si se lo escucha o no.
% El ciclo se repite tantas veces como sea necesario hasta que
% se ingrese una frecuencia = 0.
% Frecuencia distinta de 0 sin sentido para poder iniciar el
% proceso
fo = 1;
% Bandera que indica que no se desea terminar
final = 'a';
% Nivel de presión sonora por defecto inicial
Lp = 40;
% Si no existe la matriz mini se la crea. Representa el nivel
% mínimo que se escucha en cada frecuencia. Se lo inicializa
% como 99 dB para ir bajando
if exist('mini')==0
mini = 99*ones(1,7);
% n indica el número de frecuencia a ensayar
n = 1;
else
% Si existe y está inconclusa se continúa con la proxima
% frecuencia. Si una frecuencia fue ensayada, su correspondiente
% entrada en la matriz mini es diferente de 99. La próxima
% frecuencia a ensayar es la primera no ensayada
n = min(find (mini(I)==99));
end
% Si no existe la matriz maxi se la crea. Representa el nivel
% máximo que NO se escucha en cada frecuencia. Se lo inicializa
% como -9 dB para ir subiendo
if exist('maxi')==0
maxi = -9*ones(1,7);
else
% Si existe y está inconclusa se continúa con la proxima
% frecuencia. Si una frecuencia fue ensayada, su correspondiente
% entrada en la matriz mini es diferente de 99. La próxima
% frecuencia a ensayar es la primera no ensayada
n = min([n, min(find (mini(I)==99))]);
end
% Si no hay ningun n, se comienza una nueva audiometria
if prod(size(n))==0
mini = 99*ones(1,7);
maxi = -9*ones(1,7);
n = 1;
end
% Instrucciones para terminar la audiometría
disp(' ')
disp('Para terminar ingresar frecuencia audiométrica 0')
disp(' ')
disp(' ')
% Seleccion del canal de audio
canal = input('Canal (s = stereo, i = izquierdo, d = derecho): ', 's');
% Uniformización del simbolo para el canal
switch canal
case {'i','I'}
canal = 'i';
case {'d','D'}
canal = 'd';
otherwise
canal = 's';
end
disp(['Canal: ',canal])
disp(' ')
% El siguiente lazo se realiza hasta tanto se ingresa una
% frecuencia 0 o se termina de realizar la audiometría
while fo>0
% Frecuencia a ensayar por defecto, tomada del vector de
% frecuencias reordenado en el orden de los ensayos (que
% no es el orden creciente)
ff = fa(I(n));
f1 = input(['Frecuen