Como usar 01 Escolha um núcleo JavaScript e MATLAB / Octave rodam localmente; Python (Pyodide) e R (webR) precisam baixar um runtime.02 Digite no prompt e pressione Enter. Shift+Enter adiciona uma linha, ↑/↓ percorrem o histórico, Ctrl/Cmd+L limpa. Uma instrução inacabada — colchete aberto, linha ... do MATLAB, linha Python terminando em : — transforma o prompt em … e Enter continua. 03 Mude para Cells para o caderno. Cada célula tem seu próprio seletor de núcleo, então células JavaScript e Python podem ficar no mesmo documento; Ctrl+Enter executa uma célula, Run above executa ela e as anteriores, Run all percorre a lista. 04 Mova dados no painel Vars. Pull all copia as variáveis de sessão para o espaço de trabalho de dados; Push all as injeta na sessão — a única ponte entre as linguagens. 05 Confira o painel Figures. A saída de plot do MATLAB e do JavaScript baixa como SVG ou PNG; figuras do matplotlib chegam como imagens PNG.
Exemplo resolvido Resolva um sistema no núcleo MATLAB e depois verifique-o em JavaScript sobre o espaço de trabalho compartilhado. Cada leitura abaixo se reproduz com a mesma entrada.
Pressione Pull all no painel Vars: o espaço de trabalho ganha A (matriz 3×3 ) e b, x (vetores de 3 com prévias 8 -11 -3 e 2 3 -1). Mude para JavaScript, pressione Push all , e os mesmos valores estão na sessão:
O resíduo não é zero — a solução é em precisão dupla, então 8.8817841970013e-16 é o mais próximo que o ponto flutuante chega.
#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
O que é cada núcleo
JavaScript roda sobre mathjs com bibliotecas do projeto injetadas (math, cas, stats, fin, logic, graph, latex, currency, date, family, print, ws, plot); sem download; a sessão é reconstruída a partir do código-fonte (veja a armadilha).
MATLAB / Octave é um interpretador TypeScript para o subconjunto comum: doubles em ordem de coluna, cells, strings, controle de fluxo e cerca de 120 funções internas, sem structs, classes, números complexos, sparse ou tipos inteiros. Roda localmente sob um orçamento de 4 × 10⁷ operações ou 8 segundos.
Python (Pyodide 0.28.3) baixa cerca de 12 MB no primeiro uso; imports acionam o carregador de pacotes, figuras do matplotlib voltam como PNGs capturados, e arrays numpy e DataFrames pandas puxados tornam-se variáveis de matriz/vetor e tabela.
R (webR 0.6.0) baixa cerca de 30 MB, mantém o ambiente global do R base do webR entre execuções e não retorna gráficos — use texto em R ou matplotlib no Python.
Limites a ter em mente
Sem interrupção. O código roda de forma síncrona na thread principal — não há Ctrl+C nem botão de parar; divida trabalho longo, e só o MATLAB tem um orçamento interno.
As sessões terminam com a página. Transcrição, histórico e texto do caderno sobrevivem a um recarregamento; variáveis de sessão não. Só variáveis do espaço de trabalho persistem (até 20,000 elementos cada) — o painel Vars é o botão de salvar.
O primeiro uso precisa de rede. Python e R são baixados de cdn.jsdelivr.net; um download falho oferece nova tentativa, e um bem-sucedido fica em cache.
A sessão JavaScript é escaneada, não interpretada Apenas declarações let/const/var de nível superior e atribuições simples name = … são capturadas. Duas consequências pegam quase todos:
Uma variável criada pela primeira vez dentro de um bloco ou corpo de função nunca entra na sessão. Depois de if (true) { let hidden = 41; }, typeof hidden lê undefined — nenhuma linha de erro avisa.
Uma execução que lança exceção não grava nada de volta, então variáveis calculadas antes do erro se perdem. Rode let before = 1; throw new Error('boom'), leia o erro boom e depois typeof before lê undefined ; um let kept = 41 de nível superior ainda responde a kept + 1 com 42 .
Python, R e MATLAB mantêm sessões nativamente, então isto é específico do JavaScript.
Onde se encaixa Conferir um cálculo em uma segunda linguagem Resolva no MATLAB e recalcule o resíduo em JavaScript sobre o espaço de trabalho compartilhado, como acima: duas implementações concordam até 8.8817841970013e-16. Exporte o caderno como JSON para manter o código (os resultados são descartados e reexecutar os reproduz), ou exporte as células de uma linguagem como script nativo (notebook.js, notebook.m, notebook.py, notebook.R).
Mover dados entre linguagens Limpe uma tabela no Python, depois Pull all para o espaço de trabalho e Push all para R ou MATLAB no passo seguinte — ou mantenha as variáveis entre páginas no espaço de trabalho de dados . Um vetor puxado vai direto para a Estatística para resumos e testes.
Privacidade Seu código, a transcrição do console e as variáveis ficam no seu navegador; apenas os runtimes de Python e R são baixados de cdn.jsdelivr.net, uma vez.
Referências
Pyodide, Documentação do Pyodide , pyodide.org (访问日期:2026-10-01)— Python e pacotes científicos em WebAssembly.
webR, Documentação do webR , docs.r-wasm.org (访问日期:2026-10-01)— R no navegador: console e semântica de sessão.
MathWorks, mldivide, \ , mathworks.com (访问日期:2026-10-01)— o operador barra invertida resolve sistemas lineares quadrados.
MDN Web Docs, let , developer.mozilla.org (访问日期:2026-10-01)— escopo de bloco por trás da armadilha de sessão.
mathjs, Documentação , mathjs.org (访问日期:2026-10-01)— a biblioteca injetada nas execuções JavaScript.
R Core Team, An Introduction to R , cran.r-project.org (访问日期:2026-10-01)— objetos e sessões do R base.
本页计算器
精选工具,点开即用;小工具可直接试算,数值会带入完整计算器。