🥥Python交互MATLAB预测数据结果
Last updated
Last updated
Python | MATLAB
让我们在MATLAB中启用对Python的访问。您需要找到Python可执行文件的完整路径。这是Windows的示例。在Mac和Linux上,您的操作系统命令可能有所不同。
pe = pyenv;
if pe.Status == "NotLoaded"
[~,exepath] = system("where python");
pe = pyenv('Version',exepath);
end
如果这样做不起作用,您也可以将路径作为字符串传递给Python可执行文件。
pe =
pyenv('Version','C:\\Users\\username\\AppData\\Local\\your\\python\\path\\python.exe')
myPythonVersion = pe.Version
py.print("Hello, Python!")
myPythonVersion =
"3.7"
我们想看看我们是否可以根据数据集中,其人际关系从算法上预测解散方式。
该数据集包含在NetworkX中,NetworkX是Python的复杂网络程序包。通过使用此包导入数据集,我们可以轻松入门。
我正在使用NetworkX 2.2。要在Python中检查软件包的版本,通常应使用version package属性,如下所示:
>>> networkx.__version__
MATLAB不支持类名或其他以下划线(_)字符开头的标识符。而是使用以下命令获取软件包中的帮助内容,包括当前版本。
> py.help('networkx')
通常,您需要在Python脚本的开头执行此操作。但是,在MATLAB中不建议这样做,因为MATLAB中import函数的行为不同于Python。MATLAB调用Python的方式是使用py,然后使用类似以下的包或方法:
如果必须使用导入,则可以执行以下操作:
如您所见,很难记住当您省略py时我们正在调用Python方法,当您在同一脚本中开始混合MATLAB代码和Python代码时,这可能会造成混淆。
下面的代码在NetworkX图形对象中返回空手道俱乐部数据集。您可以看到此对象上可用的方法,如下所示:
您还可以查看该对象的属性。NetworkX图形包含一个edges属性,该属性返回一个称为EdgeView的对象。要在MATLAB中使用此Python对象,第一步是将对象转换为核心Python数据类型,例如Python列表。现在edgeL包含一个存储为Python元组元素的节点对的Python列表。每个节点对代表图中的一条边。让我们看一下前5个元组的值。
处理列表或元组的Python方法通常看起来像这样,您可以在循环中处理单个元素。MATLAB的方法是改用数组。可以将Python列表转换为单元格数组。此单元格数组包含Python元组元素。Python元组也可以转换为单元格数组。要转换内部元组元素,我们可以使用cellfun。
生成的嵌套单元格数组包含Python int值。
现在,我们还要从数据集中提取节点。我们可以按照与边缘相同的步骤进行操作。内部单元数组包含Python int和dict元素。Python dict是基于键值对的数据类型。在这种情况下,键是“club”,值是“Mr. Hi"。