公告:凡是在
2025 年 4 月 15 日前註冊使用 Earth Engine 的非商業專案,都必須
驗證非商業用途資格,才能繼續存取 Earth Engine。
ee.Array.eigen
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
計算 A 列和 A 欄的 2D 方陣實數特徵向量和特徵值。傳回含有 A 列和 A+1 欄的陣列,其中每列的第一欄包含特徵值,其餘 A 欄則包含對應的特徵向量。系統會依遞減順序,根據特徵值排序資料列。
這項實作作業會使用 https://ejml.org 的 DecompositionFactory.eig()。
引數 | 類型 | 詳細資料 |
---|
這個:input | 陣列 | 用來計算特徵值分解的 2D 方陣。 |
範例
程式碼編輯器 (JavaScript)
print(ee.Array([[0, 0], [0, 0]]).eigen()); // [[0,0,1],[0,1,0]]
print(ee.Array([[1, 0], [0, 0]]).eigen()); // [[1,1,0],[0,0,1]]
print(ee.Array([[0, 1], [0, 0]]).eigen()); // [[0,0,1],[0,1,0]]
print(ee.Array([[0, 0], [1, 0]]).eigen()); // [[0,-1,0],[0,0,-1]]
print(ee.Array([[0, 0], [0, 1]]).eigen()); // [[1,0,1],[0,1,0]]
print(ee.Array([[1, 1], [0, 0]]).eigen()); // [[1,1,0],[0,-1/√2,1/√2]]
print(ee.Array([[0, 0], [1, 1]]).eigen()); // [[1,0,-1],[0,-1/√2,1/√2]]]
print(ee.Array([[1, 0], [1, 0]]).eigen()); // [[1,1/√2,1/√2],[0,0,1]]
print(ee.Array([[1, 0], [0, 1]]).eigen()); // [[1,1,0],[1,0,1]]
print(ee.Array([[0, 1], [1, 0]]).eigen()); // [[1,1/√2,1/√2],[-1,1/√2,-1/√2]]
print(ee.Array([[0, 1], [0, 1]]).eigen()); // [[1,1/√2,1/√2],[0,1,0]]
print(ee.Array([[1, 1], [1, 0]]).eigen()); // [[1.62,0.85,0.53],[-0.62,0.53]]
print(ee.Array([[1, 1], [0, 1]]).eigen()); // [[1,0,1],[1,1,0]]
print(ee.Array([[1, 0], [1, 1]]).eigen()); // [[1,-1,0],[1,0,-1]]
// [[1.62,-0.53,-0.85],[-0.62,-0.85,0.53]]
print(ee.Array([[0, 1], [1, 1]]).eigen());
print(ee.Array([[1, 1], [1, 1]]).eigen()); // [[2,1/√2,1/√2],[0,1/√2,-1/√2]]
var matrix = ee.Array([
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]]);
print(matrix.eigen()); // [[1,1,0,0],[1,0,1,0],[1,0,0,1]]
var matrix = ee.Array([
[2, 0, 0],
[0, 3, 0],
[0, 0, 4]]);
print(matrix.eigen()); // [[4,0,0,1],[3,0,1,0],[2,1,0,0]]
matrix = ee.Array([
[1, 0, 0],
[0, 0, 0],
[0, 0, 0]]);
print(matrix.eigen()); // [[1,1,0,0],[0,0,1,0],[0,0,0,1]]
matrix = ee.Array([
[1, 1, 1],
[1, 1, 1],
[1, 1, 1]]);
// [[3,-0.58,-0.58,-0.58],[0,0,-1/√2,1/√2],[0,-0.82,0.41,0.41]]
print(matrix.eigen());
Python 設定
請參閱
Python 環境頁面,瞭解 Python API 和如何使用 geemap
進行互動式開發。
import ee
import geemap.core as geemap
Colab (Python)
display(ee.Array([[0, 0], [0, 0]]).eigen()) # [[0, 0, 1], [0, 1, 0]]
display(ee.Array([[1, 0], [0, 0]]).eigen()) # [[1, 1, 0], [0,0,1]]
display(ee.Array([[0, 1], [0, 0]]).eigen()) # [[0, 0, 1], [0, 1, 0]]
display(ee.Array([[0, 0], [1, 0]]).eigen()) # [[0, -1, 0], [0, 0, -1]]
display(ee.Array([[0, 0], [0, 1]]).eigen()) # [[1, 0, 1], [0, 1, 0]]
# [[1, 1, 0], [0, -1/√2, 1/√2]]
display(ee.Array([[1, 1], [0, 0]]).eigen())
# [[1, 0, -1], [0, -1/√2, 1/√2]]]
display(ee.Array([[0, 0], [1, 1]]).eigen())
# [[1, 1/√2, 1/√2], [0, 0, 1]]
display(ee.Array([[1, 0], [1, 0]]).eigen())
display(ee.Array([[1, 0], [0, 1]]).eigen()) # [[1, 1, 0], [1, 0, 1]]
# [[1, 1/√2, 1/√2], [-1, 1/√2, -1/√2]]
display(ee.Array([[0, 1], [1, 0]]).eigen())
# [[1, 1/√2, 1/√2], [0, 1, 0]]
display(ee.Array([[0, 1], [0, 1]]).eigen())
# [[1.62, 0.85, 0.53], [-0.62, 0.53]]
display(ee.Array([[1, 1], [1, 0]]).eigen())
display(ee.Array([[1, 1], [0, 1]]).eigen()) # [[1, 0, 1], [1, 1, 0]]
display(ee.Array([[1, 0], [1, 1]]).eigen()) # [[1, -1, 0], [1, 0, -1]]
# [[1.62, -0.53, -0.85], [-0.62, -0.85, 0.53]]
display(ee.Array([[0, 1], [1, 1]]).eigen())
# [[2, 1/√2, 1/√2], [0, 1/√2, -1/√2]]
display(ee.Array([[1, 1], [1, 1]]).eigen())
matrix = ee.Array([
[1, 0, 0],
[0, 1, 0],
[0, 0, 1]])
display(matrix.eigen()) # [[1, 1, 0, 0], [1, 0, 1, 0], [1, 0, 0, 1]]
matrix = ee.Array([
[2, 0, 0],
[0, 3, 0],
[0, 0, 4]])
display(matrix.eigen()) # [[4, 0, 0, 1], [3, 0, 1, 0], [2, 1, 0, 0]]
matrix = ee.Array([
[1, 0, 0],
[0, 0, 0],
[0, 0, 0]])
display(matrix.eigen()) # [[1, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
matrix = ee.Array([
[1, 1, 1],
[1, 1, 1],
[1, 1, 1]])
# [[3, -0.58, -0.58, -0.58], [0, 0, -1/√2, 1/√2], [0, -0.82, 0.41, 0.41]]
display(matrix.eigen())
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-26 (世界標準時間)。
[null,null,["上次更新時間:2025-07-26 (世界標準時間)。"],[[["\u003cp\u003eComputes the real eigenvectors and eigenvalues of a 2D square array.\u003c/p\u003e\n"],["\u003cp\u003eReturns an array where each row represents an eigenvalue and its corresponding eigenvector.\u003c/p\u003e\n"],["\u003cp\u003eEigenvalues are sorted in descending order within the output array.\u003c/p\u003e\n"],["\u003cp\u003eUtilizes the \u003ccode\u003eDecompositionFactory.eig()\u003c/code\u003e method from the EJML library for computation.\u003c/p\u003e\n"],["\u003cp\u003eAccepts a single argument: the input 2D square array.\u003c/p\u003e\n"]]],["The `eigen()` function computes the eigenvalues and eigenvectors of a square 2D array. It takes a square 2D array as input and returns a new array where each row represents an eigenvalue and its corresponding eigenvector. The first column of each row contains the eigenvalue, and the remaining columns contain the eigenvector components. The rows are sorted in descending order by eigenvalue. It uses `DecompositionFactory.eig()` for its core calculations.\n"],null,["# ee.Array.eigen\n\nComputes the real eigenvectors and eigenvalues of a square 2D array of A rows and A columns. Returns an array with A rows and A+1 columns, where each row contains an eigenvalue in the first column, and the corresponding eigenvector in the remaining A columns. The rows are sorted by eigenvalue, in descending order.\n\n\u003cbr /\u003e\n\nThis implementation uses DecompositionFactory.eig() from https://ejml.org.\n\n| Usage | Returns |\n|-----------------|---------|\n| Array.eigen`()` | Array |\n\n| Argument | Type | Details |\n|---------------|-------|------------------------------------------------------------------------|\n| this: `input` | Array | A square, 2D array from which to compute the eigenvalue decomposition. |\n\nExamples\n--------\n\n### Code Editor (JavaScript)\n\n```javascript\nprint(ee.Array([[0, 0], [0, 0]]).eigen()); // [[0,0,1],[0,1,0]]\n\nprint(ee.Array([[1, 0], [0, 0]]).eigen()); // [[1,1,0],[0,0,1]]\nprint(ee.Array([[0, 1], [0, 0]]).eigen()); // [[0,0,1],[0,1,0]]\nprint(ee.Array([[0, 0], [1, 0]]).eigen()); // [[0,-1,0],[0,0,-1]]\nprint(ee.Array([[0, 0], [0, 1]]).eigen()); // [[1,0,1],[0,1,0]]\n\nprint(ee.Array([[1, 1], [0, 0]]).eigen()); // [[1,1,0],[0,-1/√2,1/√2]]\nprint(ee.Array([[0, 0], [1, 1]]).eigen()); // [[1,0,-1],[0,-1/√2,1/√2]]]\n\nprint(ee.Array([[1, 0], [1, 0]]).eigen()); // [[1,1/√2,1/√2],[0,0,1]]\nprint(ee.Array([[1, 0], [0, 1]]).eigen()); // [[1,1,0],[1,0,1]]\nprint(ee.Array([[0, 1], [1, 0]]).eigen()); // [[1,1/√2,1/√2],[-1,1/√2,-1/√2]]\nprint(ee.Array([[0, 1], [0, 1]]).eigen()); // [[1,1/√2,1/√2],[0,1,0]]\n\nprint(ee.Array([[1, 1], [1, 0]]).eigen()); // [[1.62,0.85,0.53],[-0.62,0.53]]\nprint(ee.Array([[1, 1], [0, 1]]).eigen()); // [[1,0,1],[1,1,0]]\nprint(ee.Array([[1, 0], [1, 1]]).eigen()); // [[1,-1,0],[1,0,-1]]\n// [[1.62,-0.53,-0.85],[-0.62,-0.85,0.53]]\nprint(ee.Array([[0, 1], [1, 1]]).eigen());\n\nprint(ee.Array([[1, 1], [1, 1]]).eigen()); // [[2,1/√2,1/√2],[0,1/√2,-1/√2]]\n\nvar matrix = ee.Array([\n [1, 0, 0],\n [0, 1, 0],\n [0, 0, 1]]);\nprint(matrix.eigen()); // [[1,1,0,0],[1,0,1,0],[1,0,0,1]]\n\nvar matrix = ee.Array([\n [2, 0, 0],\n [0, 3, 0],\n [0, 0, 4]]);\nprint(matrix.eigen()); // [[4,0,0,1],[3,0,1,0],[2,1,0,0]]\n\nmatrix = ee.Array([\n [1, 0, 0],\n [0, 0, 0],\n [0, 0, 0]]);\nprint(matrix.eigen()); // [[1,1,0,0],[0,0,1,0],[0,0,0,1]]\n\nmatrix = ee.Array([\n [1, 1, 1],\n [1, 1, 1],\n [1, 1, 1]]);\n// [[3,-0.58,-0.58,-0.58],[0,0,-1/√2,1/√2],[0,-0.82,0.41,0.41]]\nprint(matrix.eigen());\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\n### Colab (Python)\n\n```python\ndisplay(ee.Array([[0, 0], [0, 0]]).eigen()) # [[0, 0, 1], [0, 1, 0]]\n\ndisplay(ee.Array([[1, 0], [0, 0]]).eigen()) # [[1, 1, 0], [0,0,1]]\ndisplay(ee.Array([[0, 1], [0, 0]]).eigen()) # [[0, 0, 1], [0, 1, 0]]\ndisplay(ee.Array([[0, 0], [1, 0]]).eigen()) # [[0, -1, 0], [0, 0, -1]]\ndisplay(ee.Array([[0, 0], [0, 1]]).eigen()) # [[1, 0, 1], [0, 1, 0]]\n\n# [[1, 1, 0], [0, -1/√2, 1/√2]]\ndisplay(ee.Array([[1, 1], [0, 0]]).eigen())\n\n# [[1, 0, -1], [0, -1/√2, 1/√2]]]\ndisplay(ee.Array([[0, 0], [1, 1]]).eigen())\n\n# [[1, 1/√2, 1/√2], [0, 0, 1]]\ndisplay(ee.Array([[1, 0], [1, 0]]).eigen())\ndisplay(ee.Array([[1, 0], [0, 1]]).eigen()) # [[1, 1, 0], [1, 0, 1]]\n\n# [[1, 1/√2, 1/√2], [-1, 1/√2, -1/√2]]\ndisplay(ee.Array([[0, 1], [1, 0]]).eigen())\n\n# [[1, 1/√2, 1/√2], [0, 1, 0]]\ndisplay(ee.Array([[0, 1], [0, 1]]).eigen())\n\n# [[1.62, 0.85, 0.53], [-0.62, 0.53]]\ndisplay(ee.Array([[1, 1], [1, 0]]).eigen())\ndisplay(ee.Array([[1, 1], [0, 1]]).eigen()) # [[1, 0, 1], [1, 1, 0]]\ndisplay(ee.Array([[1, 0], [1, 1]]).eigen()) # [[1, -1, 0], [1, 0, -1]]\n\n# [[1.62, -0.53, -0.85], [-0.62, -0.85, 0.53]]\ndisplay(ee.Array([[0, 1], [1, 1]]).eigen())\n\n# [[2, 1/√2, 1/√2], [0, 1/√2, -1/√2]]\ndisplay(ee.Array([[1, 1], [1, 1]]).eigen())\n\nmatrix = ee.Array([\n [1, 0, 0],\n [0, 1, 0],\n [0, 0, 1]])\ndisplay(matrix.eigen()) # [[1, 1, 0, 0], [1, 0, 1, 0], [1, 0, 0, 1]]\n\nmatrix = ee.Array([\n [2, 0, 0],\n [0, 3, 0],\n [0, 0, 4]])\ndisplay(matrix.eigen()) # [[4, 0, 0, 1], [3, 0, 1, 0], [2, 1, 0, 0]]\n\nmatrix = ee.Array([\n [1, 0, 0],\n [0, 0, 0],\n [0, 0, 0]])\ndisplay(matrix.eigen()) # [[1, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]\n\nmatrix = ee.Array([\n [1, 1, 1],\n [1, 1, 1],\n [1, 1, 1]])\n# [[3, -0.58, -0.58, -0.58], [0, 0, -1/√2, 1/√2], [0, -0.82, 0.41, 0.41]]\ndisplay(matrix.eigen())\n```"]]