Code: Alles auswählen
from sympy.matrices import *
from sympy.printing import *
from IPython.display import display, HTML, Math, Latex, clear_output
from ipywidgets import widgets
from random import randint
from sympy import *
from builtins import str
text1 = widgets.Text()
button1 = widgets.Button(description="Auswerten")
button2 = widgets.Button(description="Neue Aufgabe")
x=[]
#x[0] = Matrix()
#x[1] = Matrix()
#x[2] = Matrix()
latexWidget = widgets.Latex()
taskWidget = widgets.HTML()
mhbox1 = widgets.HBox((taskWidget, latexWidget))
mhbox2 = widgets.HBox((button1, button2))
def init_vectors(b, matrix_1, anzahl_1, matrix_2):
global x, text1
anzahl_matrizen=0;
for u in range(anzahl_1):
x.append(matrix_1)
if isinstance(matrix_2,Matrix):
x.append(matrix_2)
for u in range(anzahl_1):
anzahl_matrizen=anzahl_matrizen+1
for i in range(matrix_1.shape[1]):
for j in range(matrix_1.shape[0]):
x[u][j,i]=randint(-10,10)
w=widgets.Textarea(
description='Matrix',
value = str(x[0]),
)
display(w)
w=widgets.Textarea(
description='Matrix',
value = str(x[1]),
)
display(w)
if isinstance(matrix_2,Matrix):
anzahl_matrizen+=1
for i in range(matrix_2.shape[1]):
for j in range(matrix_2.shape[0]):
x[anzahl_1][j,i]=randint(-10,10)
#w=widgets.Textarea(
#description='Matrix',
#value = str(x[anzahl_1]),
#)
#display(w)
text1.value = ""
display_task(anzahl_matrizen)
def display_task(anzahl_matrizen):
global x, latexWidget
a=[]
clear_output()
for i in range(anzahl_matrizen):
b=latex(x[i])
b=b.replace("left[", "left(")
b=b.replace("right]", "right)")
a.append(b)
str1="$\langle"
for i in range(anzahl_matrizen):
str1=str1+a[i]+", "
str1 += "\\rangle$"
latexWidget.value = str1
def evaluate(b):
global x, y, text1
z = x.dot(y)
clear_output()
display_task()
if "{0}".format(z) == text1.value:
display(HTML("<b><font color='green'>Richtig</font></b>"))
else:
display(HTML("<b><font color='red'>Falsch</font></b>"))
def exec_la_scalar(aufgabentext, matrix1, anzahl1, matrix2):
taskWidget.value = "<b>{0}</b>".format(aufgabentext)
init_vectors(button2, matrix1, anzahl1, matrix2)
button2.on_click(init_vectors)
button1.on_click(evaluate)
display(widgets.VBox((mhbox1, text1, mhbox2)))