返回课程总览

实验 06 · Python -> MATLAB

从 Python 项目迁移到 MATLAB

把 Lab 5 的数据总结项目翻译成 MATLAB,并比较两个版本的输出。

核心问题

如何把一个小型 Python 项目翻译成 MATLAB 并验证结果一致?

复用技能

  • MATLAB row vector
  • length
  • sum
  • disp/fprintf
  • element-wise 运算

主要任务

  1. 重新运行 Lab 5 Python 项目。
  2. 让 Codex 生成 labs/lab06/main.m。
  3. 运行 MATLAB 脚本并比较输出。

提交内容

完整讲义

实验 6:从 Python 项目迁移到 MATLAB

数学问题

如何把一个小型 Python 数据总结项目翻译成 MATLAB,并验证两个版本结果一致?

复用前面技能

  • 用 PowerShell 进入课程根目录。
  • 用 VS Code 编辑文件。
  • 保存 Codex 提示词到实验笔记。
  • 运行一个多文件 Python 项目。
  • 手动检查数值总结是否合理。

任务

  1. 打开课程根目录:

``powershell cd Desktop\codex-matlab-class mkdir labs\lab06 code . ``

  1. 再次运行你完成的实验 5 项目:

``powershell python labs\lab05\main.py ``

如果你没有可运行的实验 5 项目,可以将 starters/lab06/python_summary_reference.py 复制到 labs/lab06/, 作为参考 Python 版本运行。

  1. 创建 notes/lab06-notes.md
  2. 向 Codex 提问:

``text I know basic Python and I am learning MATLAB. Convert the calculations from labs/lab05/main.py and labs/lab05/analysis_helpers.py into a beginner-friendly MATLAB script named labs/lab06/main.m. Use the data [2, 4, 5, 7, 11, 13]. The MATLAB script should compute count, total, mean, min, max, centered values, squared deviations, sum of squared deviations, and mean squared deviation. It should print comparable output and write a text report to labs/lab06/results.txt. Do not use advanced MATLAB features. ``

  1. 在课程根目录中打开 MATLAB 并运行:

``matlab run("labs/lab06/main.m") ``

  1. 比较 Python 和 MATLAB 输出。

必须解释的 MATLAB 概念

笔记中必须解释:

  • Python list 与 MATLAB row vector;
  • len(values)length(values)
  • Python sum(values) 与 MATLAB sum(values)
  • **.^
  • printdispfprintf
  • Python 从 0 开始索引,MATLAB 从 1 开始索引。

验证要求

MATLAB 输出应与实验 5 的手算检查一致:

total = 42
mean = 7
centered values = [-5 -3 -2 0 4 6]
sum of squared deviations = 90
mean squared deviation = 15

提交内容

  • labs/lab06/main.m
  • labs/lab06/results.txt
  • 如果使用了参考 Python 脚本,还需提交 labs/lab06/python-results.txt
  • notes/lab06-notes.md
  • Python 输出和 MATLAB 输出截图

Checkpoint

向教师展示:

  • Python 和 MATLAB 算出相同总结值;
  • MATLAB 脚本是在 VS Code 中编辑的;
  • 笔记中包含至少一个 Codex 提示词和一个人工比较;
  • 你能解释为什么 MATLAB 在平方偏差中使用 .^