Differences between revisions 1 and 8 (spanning 7 versions)
Revision 1 as of 2006-05-25 04:40:07
Size: 4463
Editor: JorgeCortes
Comment: se crea una de las paginas de traduccion del proyecto Octave
Revision 8 as of 2012-04-25 22:54:01
Size: 161
Editor: IgorTamara
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
GNU Octave en su mayoria es compatible con Matlab. Sin embargo, el analizador de Octave va mas alla y mas arriba que el de Matlab, entonces algunos programas de Octave podrian no correr en Matlab. Por ejemplo, Octave soporta el uso de comillas sencillas y dobles. Matlab solo soporta comillas sencillas y las dobles resultan en errores de analisis. Los usuarios de Octave quienes deban colaborar con los usuarios de Matlab deben tomar nota de estos molestos asuntos y hacer que el program a concuerde.

Esta pagina intenta documentar donde el analizador de Matlab falla en correr el Octave. Esta pagina tambien contiene notas de las diferencias entre Octave (en modo tradicional) y Matlab.

Para compatibilidad, es mejor espicificar los directorios precisos de los archivos a cargar. Matlab (7.0) vs Octave (2.1.71): los directorios no se buscan igual para archivos .mat que para archivos .m:
{{{
Matlab: a = 1; save /tmp/a.mat a ; addpath('/tmp'); load a.mat % OK
}}}
{{{
Octave: a = 1; save /tmp/a.mat a ; LOADPATH=['/tmp:',LOADPATH]; ; load a.mat % error: load: nonexistent file: `a.mat'
}}}

Matlab (7.0) no permitira lo siguiente; Octave (2.1.71) si
{{{
X = ones(2,2) ; prod(size(X)==1)

Matlab: ??? Function 'prod' is not defined for values of class 'logical'.
}}}
{{{
Octave: ans = 0
}}}

Matlab (7.0) no permitira lo siguiente; Octave (2.1.71) si.
{{{
function a = testfun(c)

if (nargin == 1)

nargin = 2;

end
}}}

Matlab ejecutara un archivo llamado startup.m en el directorio que fue llamado de la linea de comando, Octave no.

Tip para compartit archivos .mat entre Octave y Matlab: siempre usar save -V6 si usted esta usando Matlab 7.X. Octave version 2.1.x no puede leer archivos de Matlab 7.X tipo .mat . Octave 2.9.x puede leer archivos Matlab 7.X del tipo .mat.

['abc ';'abc'] se permite en Octave en – modo tradicional; Matlab devuelve: ?? Error using ==> vertcat

! STRING llama una consola con commandos STRING en Matlab. Octave no reconoce !. Siempre use system(STRING) para compatibilidad.
{{{
a = ['\n'] ; b=find('abc' == '\n')

Matlab 6.5 : ??? Error using ==> eq Array dimensions must match for binary array op.

Octave 2.1.71 : b=[]
}}}

hist.m en Octave tiene una entrada de normalizacion, Matlab no.

Octave (2.1.7X) usa "OCTAVE_VERSION", Matlab usa "ver" para informacion de la version. Octave 2.9.5 tiene "ver".

Cell arreglos y estructuras print to screen en formatos diferentes. puede haber switches para hacerlos iguales, por ejemplo, struct_levels_to_print. Pero ninguno esta presente en --traditional mode.
{{{
system('touch emptyfile') ; A = load('emptyfile')

Matlab 6.5 : A=[]

Octave 2.1.71 : error: load: file `emptyfile' seems to be empty!

error: load: unable to extract matrix size from file `emptyfile'
}}}

Matlab no soporta `printf'.
{{{
foo = 5;

printf('My result is: %d\n', foo)
}}}

Esto funciona en Octave, pero no en Matlab. Si se usa Matlab, la clave es poner `fprintf' :
{{{
foo = 5;

fprintf('My result is: %d\n', foo)
}}}

Esto es un kludge debido ya que el commando es imprimir en la pantalla, no en un archivo. El`fprintf' de Octave es equivalente a `printf' si el argumento es simplemente un character tipo string.

Matlab no permite un espacio en blanco antes del operador de la transpuesta.
{{{
[0 1]'
}}}

trabaja en Matlab, pero
{{{
[0 1] '
}}}
no. Octave analiza apropiadamente los dos casos.

Matlab siempre requiere `...'.
{{{
rand (1, ...

2)
}}}
Mientras que
{{{
rand (1,

2)

y

rand (1, \

2)
}}}
== Otras comparaciones ==
 * Trabajan en Octave en adicion a `...'. Matlab falla con los ultimos dos.
 * Para un and-logico, Octave puede usar `&' o `&&'; Matlab requiere `&'.
 * Para un or-logico, Octave puede usar `|' or `||'; Matlab requiere `|'. (nota: En Octave '||' and '&&' devuelven un escalar, '|' and '&' devuelven matrices)
 * Para exponenciacion, Octave puede usar `^' or `**'; Matlab requiere `^'.
 * Para delimitar los datos tipo string, Octave puede usar ` or "; Matlab requiere '.
 * Para finalizar, Octave puede usar `end{if,for, ...}'; Matlab requiere `end'.

= Enlaces Externos =
 * Puede visitar el sitio del proyecto en http://www.gnu.org/software/octave/octave.html
 * Otro software como http://scilab.org/
 * Herramienta de graficacion http://www.gnuplot.info/ con demostraciones del software [http://gnuplot.sourceforge.net/demo_4.1/ aquí].
dTih1N , [url=http://hdbgdqzzbsdl.com/]hdbgdqzzbsdl[/url], [link=http://zkyghyahngne.com/]zkyghyahngne[/link], http://afpiclpymbrh.com/
----
CategoryCategory

CompatibilidadOctaveMatlab (last edited 2012-04-25 22:54:01 by IgorTamara)