如何在MATLAB中使用python字典对象?

2024-07-03 06:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用matlab2014b中的新功能,您可以直接从MATLAB调用python,并在工作区中获得python对象(就像您在Java上使用了很长时间一样)。我已经成功地调用了一个函数,并在工作区中获得了一个字典,但我仍然坚持如何从中获取值。在这个例子中,我有一个充满字典的字典,所以我不能像他们在例子中那样把它转换成MATLAB单元格。在

所以有一个具体的问题:如果我在MATLAB中有一个名为“a”的字典,如何将子字典a['2'取出?在


Tags: 对象函数功能字典java例子matlab将子
1条回答
网友
1楼 · 发布于 2024-07-03 06:23:53

通过查阅MATLAB External Interfaces文档,Python dict类型与^{}本质上是相同的接口。您需要使用^{}函数来提取某个键所需的值。因此,如果您的Python字典存储在A中,并且您希望使用'2'作为索引到字典中的键,那么您可以像这样调用values

val = values(A, '2');

因此,val将包含与'2'键相关联的值。MATLAB还可以使用多个键,它将返回多个值-每个键一个。因此,您也可以这样做:

^{pr2}$

val将是一个三元素的单元格数组,其中每个元素是您输入的关联键的值。必须将values的输出转换为cell数组,因为这通常是Python中的列表。为了在MATLAB中使用这些结果,我们需要转换成cell。在

因此,当您使用'1'作为键时,val{1}将是字典输出。类似地,当您使用'2'作为键时,val{2}将是字典输出。在


下面是对containers.Map对象的更多操作。如果您想要字典中的所有键,请使用^{}函数:

k = keys(A);

如果您只需将values与字典本身一起使用,如下所示:

val = cell(values(A));

存储在的数组中的所有值都将存储在数组中。在

如果要更新Python字典中的特定键,请使用update函数:

update(A,py.dict(pyargs('4',5.677)));

在这里,我们使用字典A,并且更新键值对,其中键是'4',新值是5.677。在

相关问题 更多 >