matrix hübsch mit tabulate und ruff check compute.py und pyproject.toml

This commit is contained in:
alexandradro committed 2026-10-22 02:53:14 +02:00
1 parent b7669e82e8
commit a484b78c22
2 files changed
+21 -8

No files matched your search

+20 -8
View File
@@ -1,12 +1,16 @@
"""Hilfsfunktionen für grundlegende Matrixoperationen."""
from __future__ import annotations
from typing import List, Sequence, TypeVar
from collections.abc import Sequence
from typing import TypeVar
Number = TypeVar("Number", int, float)
def matmul(a: Sequence[Sequence[Number]], b: Sequence[Sequence[Number]]) -> List[List[Number]]:
def matmul(
a: Sequence[Sequence[Number]], b: Sequence[Sequence[Number]]
) -> list[list[Number]]:
"""
Multipliziert zwei Matrizen miteinander.
@@ -29,13 +33,15 @@ def matmul(a: Sequence[Sequence[Number]], b: Sequence[Sequence[Number]]) -> List
raise ValueError("Matrix a ist nicht rechteckig")
if len(b) != n:
raise ValueError("Die Anzahl der Spalten in a muss der Anzahl der Zeilen in b entsprechen")
raise ValueError(
"Die Anzahl der Spalten in a muss der Anzahl der Zeilen in b entsprechen"
)
p = len(b[0])
for row in b:
if len(row) != p:
raise ValueError("Matrix b ist nicht rechteckig")
result: List[List[Number]] = [[0 for _ in range(p)] for _ in range(m)]
result: list[list[Number]] = [[0 for _ in range(p)] for _ in range(m)]
for i in range(m):
for j in range(p):
total: Number = 0
@@ -45,7 +51,7 @@ def matmul(a: Sequence[Sequence[Number]], b: Sequence[Sequence[Number]]) -> List
return result
def transpose(matrix: Sequence[Sequence[Number]]) -> List[List[Number]]:
def transpose(matrix: Sequence[Sequence[Number]]) -> list[list[Number]]:
"""
Transponiert eine Matrix.
@@ -65,7 +71,7 @@ def transpose(matrix: Sequence[Sequence[Number]]) -> List[List[Number]]:
n_rows = len(matrix)
n_cols = row_len
transposed: List[List[Number]] = [[0] * n_rows for _ in range(n_cols)]
transposed: list[list[Number]] = [[0] * n_rows for _ in range(n_cols)]
for i in range(n_rows):
for j in range(n_cols):
transposed[j][i] = matrix[i][j]
@@ -74,8 +80,9 @@ def transpose(matrix: Sequence[Sequence[Number]]) -> List[List[Number]]:
import math
#ich soll was ändern
def rot_2D(theta: Number) -> List[List[Number]]:
# ich soll was ändern
def rot_2D(theta: Number) -> list[list[Number]]:
"""
Erstellt die 2D-Rotationsmatrix für einen gegebenen Winkel.
@@ -91,3 +98,8 @@ def rot_2D(theta: Number) -> List[List[Number]]:
cos_t = math.cos(theta)
sin_t = math.sin(theta)
return [[cos_t, -sin_t], [sin_t, cos_t]]
from tabulate import tabulate
print(tabulate(rot_2D(1.0)))
+1
View File
@@ -1,3 +1,4 @@
[project]
name = "matrixmania"
version = "0.1.0"
dependencies = ["tabulate", "ruff"]