python - 将所有 MatLab 工作区变量转换为 Python 变量
问题描述
我正在像这样在 Python 上运行 MatLab 脚本(.m)(来自这里的想法):
import matlab.engine
eng = matlab.engine.start_matlab()
eng.testing(nargout=0)
test = eng.workspace['M']
print(type(test))
print(test)
这是有效的,它会打印出这样的东西:
<class 'float'>
252.0
然而,在 MatLab 方面,我在其工作区中有 30 个不同的变量(即 1x1 图形,101x1 复数双精度)。有什么方法可以“自动”将所有 MatLab 变量转换为其各自的 Python 变量?
解决方案
Matlab 中的who
命令将返回当前工作空间中所有变量的名称。您可以使用它将变量名称存储到 Matlab 工作区中的变量中。
eng.evalc('C = who;')
这个变量列表可以导入python,
>>> varnames = eng.workspace['C']
>>> varnames
['mvar1', 'mvar2', 'mvar3']
该列表可以在循环中使用,以将它们的相应值存储到字典中。
mvars = {}
for v in varnames:
mvars[v] = eng.workspace[v]
这个 dict 可以用作mvars['mvarname']
.
推荐阅读
- javascript - 如何使用本机反应在firebase中显示日期
- c++ - 如何编写 CMakeLists.txt 来构建一些源代码及其示例代码?
- docker - 如何重用来自 `RUN --mount=type=cache` docker build 的缓存?
- sql - 无法实现外键约束 »FK_0e4022833a9efc062c01637e552« - 复合主键有问题?
- javascript - document.write 写入“对象”而不是文本
- mysql - MySQL 数据库或简单的 JSON 文件,哪一个会提高性能和存储效率?
- c - 如何从函数返回动态分配的二维矩阵?
- powershell - Powershell脚本任务中的TF Merge命令不起作用
- angular - 角度打字稿等待方法完成不起作用
- wordpress - 如果登录到 wp-admin,所有浏览器都会重定向到 notfound.name