Skip to content

Latest commit

 

History

History
295 lines (219 loc) · 6.34 KB

File metadata and controls

295 lines (219 loc) · 6.34 KB

Spinach NMR - 完整输入输出功能指南

🎯 新增功能

现在你可以查看Spinach仿真的完整输入输出

✅ 功能列表

功能 说明 命令
📋 列出所有示例 查看36个类别,623个脚本 list
▶️ 运行示例 执行真实的Spinach示例 run <类别名>
🔍 查看参数 显示输入的系统参数 自动显示
📊 查看工作区 显示MATLAB工作区变量 workspace
💉 获取变量 详细查看变量内容 get <变量名>
📈 绘制结果 自动绘制NMR谱图 plot <变量名>
💻 执行MATLAB 运行自定义MATLAB代码 eval <代码>

🚀 快速开始

方法1: 交互式Shell(推荐)

conda activate matlab
cd /home/tony/Spinach-2.10.1
python run_spinach_with_io.py

然后使用交互式命令:

Spinach>> list                    # 列出所有示例
Spinach>> run fundamentals        # 运行基础教程
Spinach>> workspace               # 查看工作区变量
Spinach>> get sys                 # 查看sys变量
Spinach>> plot output             # 绘制输出结果
Spinach>> quit                    # 退出

📚 详细使用示例

示例1: 查看液体NMR仿真

Spinach>> run nmr_liquids

输出显示:

  1. ✅ 示例路径和类型
  2. ✅ 可用的脚本列表
  3. ✅ 脚本内容预览(前50行)
  4. ✅ 执行进度和时间
  5. ✅ 工作区变量状态

示例2: 执行自定义代码

Spinach>> eval sys = struct();
Spinach>> eval sys.magnet = 9.4;
Spinach>> eval sys.isotopes = {'1H', '13C'};
Spinach>> eval sys

输出显示:

  • ✅ 执行的代码
  • ✅ MATLAB返回结果
  • ✅ 执行时间

示例3: 查看和绘制结果

Spinach>> run nmr_liquids
Spinach>> workspace              # 查看所有变量
Spinach>> get spin_system        # 详细查看变量
Spinach>> plot spectrum          # 绘制谱图

输出显示:

  • ✅ 变量类型和大小
  • ✅ 数值范围统计
  • ✅ 谱图自动保存为PNG

🎨 输出格式

输入参数显示

▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶
  输入参数
▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶

系统配置:
----------------------------------------------------------------------
  magnet                    = 9.4
  isotopes                  = [1H, 13C]
  frames                    = [lab]
----------------------------------------------------------------------

执行过程显示

▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶
  执行: 创建自旋系统
▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶

执行代码:
----------------------------------------------------------------------
sys = struct();
sys.magnet = 9.4;
sys.isotopes = {'1H', '13C'};
----------------------------------------------------------------------

输出:
  sys = struct
✓ 执行完成 (耗时: 0.15秒)

结果显示

▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶
  输出: 变量 spectrum
▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶▶

变量信息:
  名称: spectrum
  类型: double
  形状: (1024,)
  大小: 1024

数据统计:
  最小值: -0.000234
  最大值: 1.000000
  平均值: 0.123456
  标准差: 0.234567

✓ 谱图已保存: spectrum_1234567890.png

📁 生成的文件

运行后会生成以下文件:

文件 说明
spectrum_*.png NMR谱图
*_plot.png 其他数据图
spinach_log_*.txt 仿真日志(如果使用visualizer)

🔧 高级功能

1. 批量运行示例

创建脚本文件 batch_examples.txt:

run fundamentals
workspace
quit

run nmr_liquids
workspace
quit

然后运行:

python run_spinach_with_io.py < batch_examples.txt

2. 保存所有输出

使用 spinach_interactive_demo.py 会自动记录所有操作到日志文件:

python spinach_interactive_demo.py

日志包含:

  • 所有执行的代码
  • MATLAB返回结果
  • 执行时间戳
  • 错误信息

3. 自定义可视化

from run_spinach_with_io import SpinachRunner

runner = SpinachRunner()
runner.start()

# 运行仿真
runner.run_example('nmr_liquids')

# 获取并绘制特定变量
data = runner.get_variable('spectrum')
if data is not None:
    runner.plot_data(data, 'My_Spectrum')

runner.interactive_shell()
runner.cleanup()

📖 推荐的学习路径

第1步: 基础教程

Spinach>> run fundamentals
Spinach>> workspace
Spinach>> get sys

第2步: 液体NMR

Spinach>> run nmr_liquids
Spinach>> workspace
Spinach>> plot output

第3步: 固体NMR

Spinach>> run nmr_solids
Spinach>> workspace
Spinach>> get spectrum

第4步: 弛豫理论

Spinach>> run relaxation_theory
Spinach>> eval your_custom_code

💡 提示和技巧

  1. 使用Tab补全: 在交互模式中,输入命令前几个字母后按Tab
  2. 历史命令: 使用上下箭头浏览历史命令
  3. 批量操作: 将命令保存到文件中,然后重定向输入
  4. 调试模式: 使用 eval 逐步检查每个步骤
  5. 变量探索: 使用 get 查看变量,然后 plot 可视化

🆘 常见问题

Q1: 如何查看所有变量?

Spinach>> workspace

Q2: 如何绘制结果?

Spinach>> plot <变量名>

Q3: 如何运行自己的脚本?

Spinach>> eval run('/path/to/your/script.m')

Q4: 如何保存输出?

所有图形自动保存为PNG,日志自动保存为TXT

Q5: 内存不足怎么办?

Spinach>> eval clear all    # 清除工作区
Spinach>> eval close all    # 关闭所有图形

🎉 开始使用

conda activate matlab
cd /home/tony/Spinach-2.10.1
python run_spinach_with_io.py

享受完整的NMR仿真体验! 🧪✨