Comment l'utiliser 01 Choisissez un noyau JavaScript et MATLAB / Octave s'exécutent localement ; Python (Pyodide) et R (webR) nécessitent un téléchargement d'environnement.02 Tapez à l'invite et appuyez sur Entrée. Shift+Entrée ajoute une ligne, ↑/↓ parcourent l'historique, Ctrl/Cmd+L efface. Une instruction inachevée — parenthèse ouverte, ligne ... MATLAB, ligne Python finissant par : — transforme l'invite en … et Entrée la poursuit. 03 Passez à Cells pour le carnet. Chaque cellule a son propre sélecteur de noyau, si bien que des cellules JavaScript et Python cohabitent dans un document ; Ctrl+Entrée exécute une cellule, Run above exécute celle-ci et les précédentes, Run all parcourt la liste. 04 Déplacez les données dans le volet Vars. Pull all copie les variables de session dans l'espace de travail de données ; Push all les injecte dans la session — le seul pont entre les langages. 05 Vérifiez le volet Figures. La sortie plot de MATLAB et JavaScript se télécharge en SVG ou PNG ; les figures matplotlib arrivent en images PNG.
Exemple travaillé Résolvez un système dans le noyau MATLAB, puis vérifiez-le en JavaScript sur l'espace de travail partagé. Chaque résultat ci-dessous se reproduit à partir de la même entrée.
Appuyez sur Pull all dans le volet Vars : l'espace de travail gagne A (matrice 3×3 ) ainsi que b, x (vecteurs 3 avec aperçus 8 -11 -3 et 2 3 -1). Passez à JavaScript, appuyez sur Push all , et les mêmes valeurs sont dans la session :
Le résidu n'est pas nul — la résolution est en double précision, donc 8.8817841970013e-16 est au plus près de ce que permet la virgule flottante.
#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
Ce qu'est chaque noyau
JavaScript s'exécute sur mathjs avec des bibliothèques du projet injectées (math, cas, stats, fin, logic, graph, latex, currency, date, family, print, ws, plot) ; aucun téléchargement ; la session est reconstruite à partir de la source (voir le piège).
MATLAB / Octave est un interpréteur TypeScript du sous-ensemble courant : doubles en ordre colonne, cellules, chaînes, contrôle de flux et environ 120 fonctions intégrées, sans structures, classes, nombres complexes, sparse ni types entiers. Il s'exécute localement sous un budget de 4 × 10⁷ opérations ou 8 secondes.
Python (Pyodide 0.28.3) télécharge environ 12 Mo à la première utilisation ; les imports déclenchent le chargeur de paquets, les figures matplotlib reviennent en PNG capturés, et les tableaux numpy et DataFrames pandas extraits deviennent des variables matrice/vecteur et tableau.
R (webR 0.6.0) télécharge environ 30 Mo, conserve l'environnement global de R de base de webR entre les exécutions et ne renvoie aucun graphique — utilisez du texte en R ou matplotlib en Python.
Limites à garder en tête
Aucune interruption. Le code s'exécute de façon synchrone sur le fil principal — pas de Ctrl+C ni de bouton d'arrêt ; découpez le travail long, et seul MATLAB a un budget interne.
Les sessions se terminent avec la page. La transcription, l'historique et le texte du carnet survivent à un rechargement ; les variables de session non. Seules les variables de l'espace de travail persistent (jusqu'à 20,000 éléments chacune) — le volet Vars est le bouton d'enregistrement.
La première utilisation demande le réseau. Python et R sont récupérés depuis cdn.jsdelivr.net ; un téléchargement échoué propose de réessayer, et un téléchargement réussi est mis en cache. Ce qu'il ne fait pas. Ce n'est pas MathWorks MATLAB ni un gestionnaire de paquets : pas de toolboxes, Simulink, structures ni types complexes ou sparse ; Python est limité à l'ensemble de paquets de Pyodide ; R ne renvoie pas de graphiques. Apportez des données via l'espace de travail de données ; pour le calcul matriciel sans code, utilisez les Outils mathématiques , pour les résumés et tests les Statistiques , pour une expression saisie la calculatrice scientifique .
La session JavaScript est analysée, pas interprétée Seules les déclarations let/const/var de premier niveau et les affectations simples name = … sont capturées. Deux conséquences surprennent presque tout le monde :
Une variable créée pour la première fois dans un bloc ou un corps de fonction n'entre jamais dans la session. Après if (true) { let hidden = 41; }, typeof hidden lit undefined — aucune ligne d'erreur ne vous prévient.
Une exécution qui lève une exception n'écrit rien en retour, donc les variables calculées avant l'erreur sont perdues. Exécutez let before = 1; throw new Error('boom'), lisez l'erreur boom, puis typeof before lit undefined ; un let kept = 41 de premier niveau répond encore à kept + 1 par 42 .
Python, R et MATLAB gardent leurs sessions nativement, ceci est donc propre à JavaScript.
Où cela s'intègre Recouper un calcul dans un second langage Résolvez en MATLAB et recalculez le résidu en JavaScript sur l'espace de travail partagé, comme ci-dessus : deux implémentations concordent à 8.8817841970013e-16 près. Exportez le carnet en JSON pour conserver le code (les résultats sont écartés et une nouvelle exécution les reproduit), ou exportez les cellules d'un langage en script natif (notebook.js, notebook.m, notebook.py, notebook.R).
Déplacer des données entre langages Nettoyez une table en Python, puis Pull all vers l'espace de travail et Push all vers R ou MATLAB pour l'étape suivante — ou gardez les variables entre les pages dans l'espace de travail de données . Un vecteur extrait va directement dans les Statistiques pour des résumés et des tests.
Confidentialité Votre code, la transcription de la console et vos variables restent dans votre navigateur ; seuls les environnements d'exécution Python et R sont récupérés depuis cdn.jsdelivr.net, une fois.
Références
Pyodide, Documentation de Pyodide , pyodide.org (访问日期:2026-10-01)— Python et les paquets scientifiques en WebAssembly.
webR, Documentation de webR , docs.r-wasm.org (访问日期:2026-10-01)— R dans le navigateur : console et sémantique de session.
MathWorks, mldivide, \ , mathworks.com (访问日期:2026-10-01)— l'opérateur barre oblique inverse résout les systèmes linéaires carrés.
MDN Web Docs, let , developer.mozilla.org (访问日期:2026-10-01)— la portée de bloc derrière le piège de session.
mathjs, Documentation , mathjs.org (访问日期:2026-10-01)— la bibliothèque injectée dans les exécutions JavaScript.
R Core Team, An Introduction to R , cran.r-project.org (访问日期:2026-10-01)— objets et sessions de R de base.
本页计算器
精选工具,点开即用;小工具可直接试算,数值会带入完整计算器。