python - 如何将 matlab 代码转换为 python 代码?

标签 python matlab python-3.x arcgis

下一个代码是matlab代码。我想将此代码转换为Python代码,以便在Arcgis中使用它。

vals = zeros(size(a(:,:,1)));
 [~,indexOfMax] = max(a,[],3);
 for i=1:size(a,1)
    for j=1:size(a,2)
        vals(i,j) = b(i,j, indexOfMax(i,j));
    end 
 end

我将简要解释一下这段代码。我有两个图像(名为 A 和 B)。两者都有 7 层,尺寸相同 (4169,6289,7)。首先我想找到A图像中最大值的位置,然后获取上一步从A图像中提取的B图像在最大值位置处的值。

非常感谢

最佳答案

vals = numpy.zeros((a.shape[0], a.shape[1]))
indexOfMax = numpy.argmax(a,2)
for i in range(a.shape[0]):
  for j in range(a.shape[1]):
    vals[i,j] = b[i,j, indexOfMax[i,j]]

还应该可以进行矢量化,而不是使用 for 循环。

小心,在Python中缩进很重要!保留第二个 for 循环之前和 vals 之前的缩进。

关于python - 如何将 matlab 代码转换为 python 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14018042/

相关文章:

Python3导入错误

python - if 语句的语法无效

python - 正则表达式组遇到问题

arrays - 如何在 Matlab 中更有效地进行以下矩阵乘法?

linux - 在 Ubuntu 上从 matlab 调用外部脚本失败

matlab - 在matlab中用数字随机数创建矩阵

python - 如何创建命名元组的 __repr__?

Python tkinter 将 Canvas 保存为 postscript 并添加到 pdf

python - Python 中的 Protovis 风格色标?

python - dir(package) 未列出 python 中包含的模块