首页 > 解决方案 > 来自库编译器的 Python 包:Matlab 运行时错误:索引超出矩阵维度

问题描述

我在 Matlab 中有一个函数。我从中创建了一个 python 包以在我的 python 代码中使用。到目前为止,一切都很好。当我在 python 中调用该函数时,我收到了消息:

MatlabRuntimeError:评估函数结果时发生错误。详细信息:文件 C:\Users\Roberto\AppData\Local\Temp\Guilherme\mcrCache9.0.1\classi4\classificado\contagemWGS84.m,第 59 行,在 contagemWGS84 索引中超出了矩阵维度。

当我转到代码的第 59 行时:

plantas(1) = dados{1}(1);  %line 59
plantas(1).Diameter = ...
    2*sqrt((dados{1}(1).Area*res^2)/pi) + 2*step_erode(1)*res;
for i=1:length(dados)
...
...
...

其中 dados 是 8x1 结构,dados{1} 是 99x1 结构,dados{1}(1) 是 1x1 结构矩阵和数字字段。当我在matlab中直接运行完全相同的代码时,它运行没有问题。当我在 python 中运行时,我得到了这个错误。

我正在使用 python 2.7 和 Matlab R2016a。请帮忙。

标签: pythonpython-2.7matlabmatlab-compiler

解决方案


Python(和大多数 numpy)数组是索引的,因此访问 1x1 矩阵的 memeber[1][1] 需要第二行的第二列。


推荐阅读