Cómo usarlo 01 Elige un núcleo JavaScript y MATLAB / Octave se ejecutan localmente; Python (Pyodide) y R (webR) necesitan descargar un entorno de ejecución.02 Escribe en el indicador y pulsa Enter. Shift+Enter añade una línea nueva, ↑/↓ recorren el historial, Ctrl/Cmd+L borra. Una instrucción inacabada — paréntesis abierto, línea ... de MATLAB, línea de Python que termina en : — convierte el indicador en … y Enter continúa. 03 Cambia a Cells para el cuaderno. Cada celda tiene su propio selector de núcleo, así que las celdas de JavaScript y Python pueden convivir en un documento; Ctrl+Enter ejecuta una celda, Run above ejecuta esa y las anteriores, Run all recorre la lista. 04 Mueve datos en el panel Vars. Pull all copia las variables de sesión al espacio de trabajo de datos; Push all las inyecta en la sesión — el único puente entre lenguajes. 05 Revisa el panel Figures. La salida de plot de MATLAB y JavaScript se descarga como SVG o PNG; las figuras de matplotlib llegan como imágenes PNG.
Ejemplo resuelto Resuelve un sistema en el núcleo de MATLAB y verifícalo después en JavaScript sobre el espacio de trabajo compartido. Cada lectura de abajo se reproduce con la misma entrada.
Pulsa Pull all en el panel Vars: el espacio de trabajo gana A (matriz 3×3 ) y b, x (vectores de 3 con vistas previas 8 -11 -3 y 2 3 -1). Cambia a JavaScript, pulsa Push all , y los mismos valores están en la sesión:
El residuo no es cero — la resolución es en doble precisión, así que 8.8817841970013e-16 es lo más cerca que llega la coma flotante.
#1 >> A = [2 1 -1; -3 -1 2; -2 1 2]; b = [8; -11; -3];
>> x = A\b
x =
2.0000
3.0000
-1.0000
>> norm(A*x - b)
ans = 8.8818e-16#2 > math.multiply(A, x)
[8, -11, -3]
> math.norm(math.subtract(math.multiply(A, x), b))
8.8817841970013e-16
Qué es cada núcleo
JavaScript se ejecuta sobre mathjs con bibliotecas del proyecto inyectadas (math, cas, stats, fin, logic, graph, latex, currency, date, family, print, ws, plot); sin descarga; la sesión se reconstruye desde el código fuente (véase la trampa).
MATLAB / Octave es un intérprete de TypeScript para el subconjunto común: doubles en orden por columnas, celdas, cadenas, control de flujo y unos 120 built-ins, sin structs, clases, números complejos, sparse ni tipos enteros. Se ejecuta localmente con un límite de 4 × 10⁷ operaciones u 8 segundos.
Python (Pyodide 0.28.3) descarga unos 12 MB en el primer uso; las importaciones activan el cargador de paquetes, las figuras de matplotlib vuelven como PNG capturados, y los arrays de numpy y DataFrames de pandas extraídos se convierten en variables de matriz/vector y de tabla.
R (webR 0.6.0) descarga unos 30 MB, conserva el entorno global de R base de webR entre ejecuciones y no devuelve gráficos — usa texto en R o matplotlib en Python.
Límites que conviene recordar
Sin interrupción. El código se ejecuta de forma síncrona en el hilo principal — no hay Ctrl+C ni botón de parada; divide el trabajo largo, y solo MATLAB tiene un presupuesto interno.
Las sesiones terminan con la página. La transcripción, el historial y el texto del cuaderno sobreviven a una recarga; las variables de sesión no. Solo persisten las variables del espacio de trabajo (hasta 20,000 elementos cada una) — el panel Vars es el botón de guardar.
El primer uso necesita la red. Python y R se descargan de cdn.jsdelivr.net; una descarga fallida ofrece reintentar, y una correcta queda en caché.
La sesión de JavaScript se escanea, no se interpreta Solo se capturan las declaraciones let/const/var de nivel superior y las asignaciones simples name = …. Dos consecuencias sorprenden a casi todos:
Una variable creada por primera vez dentro de un bloque o cuerpo de función nunca entra en la sesión. Tras if (true) { let hidden = 41; }, typeof hidden lee undefined — ninguna línea de error te avisa.
Una ejecución que lanza una excepción no escribe nada de vuelta, así que las variables calculadas antes del error se pierden. Ejecuta let before = 1; throw new Error('boom'), lee el error boom y luego typeof before lee undefined ; un let kept = 41 de nivel superior sigue respondiendo a kept + 1 con 42 .
Python, R y MATLAB conservan sus sesiones de forma nativa, así que esto es específico de JavaScript.
Para qué encaja Contrastar un cálculo en un segundo lenguaje Resuelve en MATLAB y recalcula el residuo en JavaScript sobre el espacio de trabajo compartido, como arriba: dos implementaciones coinciden hasta 8.8817841970013e-16. Exporta el cuaderno como JSON para conservar el código (los resultados se descartan y volver a ejecutarlo los reproduce), o exporta las celdas de un lenguaje como script nativo (notebook.js, notebook.m, notebook.py, notebook.R).
Mover datos entre lenguajes Limpia una tabla en Python, luego Pull all al espacio de trabajo y Push all a R o MATLAB para el paso siguiente — o conserva las variables entre páginas en el espacio de trabajo de datos . Un vector extraído va directo a Estadística para resúmenes y contrastes.
Privacidad Tu código, la transcripción de la consola y las variables permanecen en tu navegador; solo los entornos de ejecución de Python y R se descargan de cdn.jsdelivr.net, una vez.
Referencias
Pyodide, Documentación de Pyodide , pyodide.org (访问日期:2026-10-01)— Python y paquetes científicos en WebAssembly.
webR, Documentación de webR , docs.r-wasm.org (访问日期:2026-10-01)— R en el navegador: consola y semántica de sesión.
MathWorks, mldivide, \ , mathworks.com (访问日期:2026-10-01)— el operador barra invertida resuelve sistemas lineales cuadrados.
MDN Web Docs, let , developer.mozilla.org (访问日期:2026-10-01)— ámbito de bloque detrás de la trampa de sesión.
mathjs, Documentación , mathjs.org (访问日期:2026-10-01)— la biblioteca inyectada en las ejecuciones de JavaScript.
R Core Team, An Introduction to R , cran.r-project.org (访问日期:2026-10-01)— objetos y sesiones de R base.
本页计算器
精选工具,点开即用;小工具可直接试算,数值会带入完整计算器。