我正在制作一个调用matlab函数的软件,我想在matlab函数中传递一个dict作为参数,使用matlab.engine软件在python中。你知道吗
像这样:
def Parametrize(confFile):
""" Return
Argument:
confFile -- str() Configuration File path
Function that call MatLab function passing handles structure/dict as
argument. The return value of MatLab function called Parametrize(handles)
is the modified handles structure.
"""
print("ouai")
test = dict()
keys = range(4)
values = ["Hi", "I", "am", "John"]
for i in keys:
test[str(i)] = values[i]
eng = matlab.engine.start_matlab()
eng.addpath(vssFolderPath)
res = eng.Transit(test)
print(type(res))
print(res)
matlab函数非常基本,我正在测试如何将数据从Python传递到matlab:
function a = Transit(test)
field = 'Value1';
value = {'TEST'};
disp(test)
a = struct(field,value);
我总是有这样的错误:
ValueError: invalid field for MATLAB struct
但是我读了这个document解释了如何将数据从python传递到matlab,我不知道为什么它对我不起作用。你知道吗
上面写着:
如果您的键是数字的,则不支持将字典传递给MATLAB。我认为这也适用于转换成字符串的数字。从你的代码看,你的字典是:
这里的键虽然是字符串,但是是数字
[0-9]
。你知道吗MATLAB中的字段名不能以数字字符} )开头。尝试更改键以字母字符
[0-9]
(^{[a-zA-Z]
开头。在您的例子中,似乎MATLAB正在尝试从键创建字段名,但是失败了,因为字段名以一个数字开头,而根据docs,MATLAB不支持这个数字。你知道吗相关问题 更多 >
编程相关推荐