|
69 | 69 | "outputs": [],
|
70 | 70 | "source": [
|
71 | 71 | "Y = ttb.ktensor(\n",
|
72 |
| - " [np.random.rand(4, 1), np.random.rand(2, 1), np.random.rand(3, 1)]\n", |
| 72 | + " [\n", |
| 73 | + " np.random.rand(4, 1),\n", |
| 74 | + " np.random.rand(2, 1),\n", |
| 75 | + " np.random.rand(3, 1),\n", |
| 76 | + " ]\n", |
73 | 77 | ") # Another ktensor.\n",
|
74 | 78 | "Y"
|
75 | 79 | ]
|
|
436 | 440 | "source": [
|
437 | 441 | "np.random.seed(0)\n",
|
438 | 442 | "X = ttb.ktensor(\n",
|
439 |
| - " [np.random.rand(4, 2), np.random.rand(2, 2), np.random.rand(3, 2)]\n", |
| 443 | + " [\n", |
| 444 | + " np.random.rand(4, 2),\n", |
| 445 | + " np.random.rand(2, 2),\n", |
| 446 | + " np.random.rand(3, 2),\n", |
| 447 | + " ]\n", |
440 | 448 | ") # Data.\n",
|
441 | 449 | "Y = ttb.ktensor(\n",
|
442 |
| - " [np.random.rand(4, 2), np.random.rand(2, 2), np.random.rand(3, 2)]\n", |
| 450 | + " [\n", |
| 451 | + " np.random.rand(4, 2),\n", |
| 452 | + " np.random.rand(2, 2),\n", |
| 453 | + " np.random.rand(3, 2),\n", |
| 454 | + " ]\n", |
443 | 455 | ") # More data.\n",
|
444 | 456 | "X, Y"
|
445 | 457 | ]
|
|
522 | 534 | "source": [
|
523 | 535 | "np.random.seed(0)\n",
|
524 | 536 | "X = ttb.ktensor(\n",
|
525 |
| - " [np.random.rand(4, 2), np.random.rand(2, 2), np.random.rand(3, 2)]\n", |
| 537 | + " [\n", |
| 538 | + " np.random.rand(4, 2),\n", |
| 539 | + " np.random.rand(2, 2),\n", |
| 540 | + " np.random.rand(3, 2),\n", |
| 541 | + " ]\n", |
526 | 542 | ") # Data.\n",
|
527 | 543 | "X.permute(np.array((1, 2, 0))) # Reorders modes of X."
|
528 | 544 | ]
|
|
543 | 559 | "source": [
|
544 | 560 | "np.random.seed(0)\n",
|
545 | 561 | "X = ttb.ktensor(\n",
|
546 |
| - " [np.random.rand(3, 2), np.random.rand(4, 2), np.random.rand(2, 2)]\n", |
| 562 | + " [\n", |
| 563 | + " np.random.rand(3, 2),\n", |
| 564 | + " np.random.rand(4, 2),\n", |
| 565 | + " np.random.rand(2, 2),\n", |
| 566 | + " ]\n", |
547 | 567 | ") # Unit weights.\n",
|
548 | 568 | "X"
|
549 | 569 | ]
|
|
574 | 594 | "source": [
|
575 | 595 | "np.random.seed(0)\n",
|
576 | 596 | "X = ttb.ktensor(\n",
|
577 |
| - " [np.random.rand(4, 2), np.random.rand(2, 2), np.random.rand(3, 2)]\n", |
| 597 | + " [\n", |
| 598 | + " np.random.rand(4, 2),\n", |
| 599 | + " np.random.rand(2, 2),\n", |
| 600 | + " np.random.rand(3, 2),\n", |
| 601 | + " ]\n", |
578 | 602 | ") # Data.\n",
|
579 | 603 | "Y = X\n",
|
580 | 604 | "Y.factor_matrices[0][:, 0] = -Y.factor_matrices[0][\n",
|
|
629 | 653 | "metadata": {},
|
630 | 654 | "outputs": [],
|
631 | 655 | "source": [
|
632 |
| - "print(f\"U*S*Vh:\\n{U@np.diag(S)@Vh}\")\n", |
| 656 | + "print(f\"U*S*Vh:\\n{U @ np.diag(S) @ Vh}\")\n", |
633 | 657 | "print(\n",
|
634 | 658 | " f\"\\nX.factor_matrices[0]@np.diag(X.weights)@(X.factor_matrices[1].transpose()):\\n\\\n",
|
635 |
| - "{X.factor_matrices[0]@np.diag(X.weights)@(X.factor_matrices[1].transpose())}\"\n", |
| 659 | + "{X.factor_matrices[0] @ np.diag(X.weights) @ (X.factor_matrices[1].transpose())}\"\n", |
636 | 660 | ")\n",
|
637 | 661 | "print(f\"\\nX.full():\\n{X.full()}\") # Reassemble the original matrix."
|
638 | 662 | ]
|
|
0 commit comments