ee.Array.eigen
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
חישוב של הווקטורים העצמיים והערכים העצמיים הממשיים של מערך דו-ממדי ריבועי עם A שורות ו-A עמודות. הפונקציה מחזירה מערך עם A שורות ו-A+1 עמודות, כאשר כל שורה מכילה ערך עצמי בעמודה הראשונה, ואת הווקטור העצמי התואם בעמודות הנותרות (A). השורות ממוינות לפי ערך עצמי, בסדר יורד.
ההטמעה הזו משתמשת ב-DecompositionFactory.eig() מ-https://ejml.org.
שימוש | החזרות |
---|
Array.eigen() | מערך |
ארגומנט | סוג | פרטים |
---|
זה: input | מערך | מערך דו-ממדי ריבועי שממנו יחושב פירוק הערכים העצמיים. |
דוגמאות
עורך הקוד (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 API ועל שימוש ב-geemap
לפיתוח אינטראקטיבי מופיע בדף
Python Environment.
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())
אלא אם צוין אחרת, התוכן של דף זה הוא ברישיון Creative Commons Attribution 4.0 ודוגמאות הקוד הן ברישיון Apache 2.0. לפרטים, ניתן לעיין במדיניות האתר Google Developers. Java הוא סימן מסחרי רשום של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-26 (שעון UTC).
[null,null,["עדכון אחרון: 2025-07-26 (שעון UTC)."],[[["\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```"]]