From 0193bcb6d8c30eb5c5a5009266ca41b1e7d20a06 Mon Sep 17 00:00:00 2001 From: Ryuu Mitsuki <117973493+mitsuki31@users.noreply.github.com> Date: Fri, 4 Aug 2023 14:05:15 +0700 Subject: [PATCH] Update `README.md` * Added 'About JMatrix' section * Updated the 'Table of Contents' --- README.md | 70 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 1383dbc..d38c395 100644 --- a/README.md +++ b/README.md @@ -39,16 +39,17 @@

Table of Contents

+- [🪐 About JMatrix](#about-jmatrix) - [🔌 Installation](#installation) * [🎯 Prerequisites](#prerequisites) + [For Normal Use](#normal-use) + [For Building the Project](#build-use) - [Constructor Summary](#constructor-summary) - * [Matrix()](#cr_matrix-1) - * [Matrix(int, int)](#cr_matrix-2) - * [Matrix(int, int, int)](#cr_matrix-3) - * [Matrix(double[][])](#cr_matrix-4) - * [Matrix.identity(int)](#cr_matrix-5) + * [`Matrix()`](#cr_matrix-1) + * [`Matrix(int, int)`](#cr_matrix-2) + * [`Matrix(int, int, int)`](#cr_matrix-3) + * [`Matrix(double[][])`](#cr_matrix-4) + * [`Matrix.identity(int)`](#cr_matrix-5) - [Matrix Operations](#matrix-ops) * [Addition](#matrix-add) * [Subtraction](#matrix-sub) @@ -61,6 +62,8 @@ +## 🪐 About JMatrix + **JMatrix** is an educational [Java][java-wiki] library and designed to facilitate and simplify [matrix operations][matrix-ops]. It offers a range of intuitive methods to perform common matrix operations with ease, making it an ideal learning tool for high school students exploring [linear algebra][linear-algebra-wiki] concepts. @@ -101,7 +104,7 @@ In addition to the fundamental matrix operations, **JMatrix** also includes matr If you are interested in obtaining the latest stable version of the project, please check the [latest version][latest-ver]. You can download the archived package containing compiled classes from there. -For improved stability and better usability, we highly recommend downloading the archived package that also includes the source files (e.g `jmatrix-_with_sources.jar`). +For improved stability and better usability, we highly recommend downloading the archived package that also includes the source files (`jmatrix-_with_sources.jar`). This package contains all the necessary documentation about classes, methods, and other aspects related to **JMatrix**, making it easier to explore and understand the project. ### 🎯 Prerequisites @@ -122,8 +125,8 @@ If you plan to build the **JMatrix** project, please ensure you have the followi - Latest version of [**Make/MinGW**][mingw] or [**Maven**][maven]. - [**Git Bash**][git-bash] *(highly recommended for Windows users)*. -> **Note** If you choose to build the project using [Maven][maven], you don't need to install [Python][python]. -> +> **Important** +> If you choose to build the project using [Maven][maven], you don't need to install [Python][python]. > However, if you are Windows user and prefer using [Make][mingw] for building, we highly recommend using [Git Bash][git-bash] as the shell environment. The `Makefile` utilizes [Bash][bash-wiki], making it more compatible with [Git Bash][git-bash]. For more detailed instructions on building the project, you can refer to the [:bookmark:Getting Started][get-started] page. @@ -133,12 +136,12 @@ Once you have the necessary prerequisites, you can start exploring and using **J --- -## Constructor Summary +## Constructor Summary There are 5 constructors that can be used for constructing the matrix. > :man::question: Still don't understand about matrix? Check the [:bookmark:Introduction to Matrix][what-is-matrix] page > to get little knowledge about matrix before dive into matrix constructor. -### Matrix() +### `Matrix()` This constructor doesn't need any arguments, but it would constructs the **Matrix** with `null` entries or can be called **null matrix**. In this case, the matrix itself can't do any operations until get initialized and have valid elements. For example: @@ -148,7 +151,8 @@ get initialized and have valid elements. For example: Matrix m = new Matrix(); ``` -> **Note** Don't be confused with **null matrix** and **zero matrix**. +> **Note** +> Don't be confused with **null matrix** and **zero matrix**. > **Null matrix** is a matrix that has `null` entries, whereas the **zero matrix** is a matrix with all elements are zero. > >
Examples @@ -179,7 +183,7 @@ Matrix m = new Matrix();
-###
Matrix(int, int) +### `Matrix(int, int)` How to create **zero matrix**? Don't worry, with this constructor you can construct **zero matrix** with ease. With just two arguments, each for size of [row][matrix-row] and [column][matrix-col]. The matrix can be called **zero matrix** if all elements inside the matrix is zero. @@ -190,7 +194,7 @@ For example: Matrix m = new Matrix(3, 4); ``` -The code above would constructs a new **zero matrix** with size $3 \times 4$. The matrix should looks like this: +The code above will construct a new **zero matrix** with size $3 \times 4$. The matrix will looks like this: ```math \begin{bmatrix} @@ -200,7 +204,7 @@ The code above would constructs a new **zero matrix** with size $3 \times 4$. Th \end{bmatrix} ``` -### Matrix(int, int, int) +### `Matrix(int, int, int)` This constructor is similar with [`Matrix(int, int)`](#cr_matrix-2) but with an additional argument which is the value to filled out the entire elements of constructed matrix. For example: @@ -209,7 +213,7 @@ argument which is the value to filled out the entire elements of constructed mat Matrix m = new Matrix(4, 4, 5); ``` -The matrix constructed above should output the same like this: +The constructed matrix above will looks like this: ```math \begin{bmatrix} @@ -220,7 +224,7 @@ The matrix constructed above should output the same like this: \end{bmatrix} ``` -### Matrix(double\[]\[]) +### `Matrix(double[][])` This constructor is very **RECOMMENDED** for constructing a new [matrix][what-is-matrix]. It because you can declare the entries first, and then you can convert it to **Matrix** object whenever you want. For example: @@ -246,11 +250,12 @@ Matrix m = new Matrix(new double[][] { }); ``` -### Matrix.identity\(int) +### `Matrix.identity(int)` This constructor would creates new **identity matrix** with size $n \times n$ (the $n$ is from input). **Identity matrix** itself is a square matrix with ones on the main diagonal and zeros elsewhere. And the **identity matrix** is often denoted by $I$. -> **Note** In code you should avoid using neither $I$ or $i$ for the **Matrix**'s variable name, it because $i$ is often used by `for-loop` statement. -> Instead you can use $mI$ or similar with it. +> **Note** +> In code you should avoid using neither $I$ nor $i$ for the **Matrix**'s variable name, it because $i$ is often used by `for-loop` statement. +> Instead you can use $mI$ or similar with that. For example: @@ -272,9 +277,9 @@ The matrix will looks like this: ``` -## Matrix Operations +## Matrix Operations -There are some basic matrix operations you can do with **JMatrix**: +There are some basic matrix operations provided by **JMatrix**: - [Addition](#matrix-add) - [Subtraction](#matrix-sub) @@ -284,11 +289,12 @@ There are some basic matrix operations you can do with **JMatrix**: Please refer to [:books: JMatrix Wikis][matrix-ops], for more detailed about matrix operations. -### Addition +### Addition :book: **Wiki:** [Matrix Addition][matrix-add] -> **Note** Ensure the two matrices are same dimensions before operating **addition**. +> **Note** +> Ensure the two matrices are same dimensions before operating **addition**. **Example code:** ```java @@ -317,11 +323,12 @@ Matrix k = Matrix.sum(m, n); \end{bmatrix} ``` -### Subtraction +### Subtraction :book: **Wiki:** [Matrix Subtraction][matrix-sub] -> **Note** Ensure the two matrices are same dimensions before operating subtraction. +> **Note** +> Ensure the two matrices are same dimensions before operating subtraction. **Example code:** ```java @@ -353,7 +360,7 @@ Matrix k = Matrix.sub(m, n); \end{bmatrix} ``` -### Scalar Multiplication +### Scalar Multiplication :book: **Wiki:** [Scalar Multiplication][scalar-mult] @@ -379,11 +386,12 @@ Matrix s = Matrix.mult(m, 5); \end{bmatrix} ``` -### Matrix Multiplication +### Matrix Multiplication :book: **Wiki:** [Matrix Multiplication][matrix-mult] -> **Note** Ensure the number of [columns][matrix-col] in the first matrix and the number of [rows][matrix-row] in the second matrix are equal before operating matrix multiplication. +> **Note** +> Ensure the number of [columns][matrix-col] in the first matrix and the number of [rows][matrix-row] in the second matrix are equal before operating matrix multiplication. **Example code:** ```java @@ -414,7 +422,7 @@ Matrix mn = Matrix.mult(m, n); \end{bmatrix} ``` -### Transposition +### Transposition :book: **Wiki:** [Matrix Transposition][matrix-tranpose] @@ -442,14 +450,14 @@ Matrix mT = Matrix.transpose(m); ``` -## Author +## Author **JMatrix** is developed and maintained by [Ryuu Mitsuki][mitsuki31]. As the sole developer of the project, [Ryuu Mitsuki][mitsuki31] responsible for the continuous improvement and updates of the library. He is committed to providing a valuable and user-friendly educational resource for high school students and anyone interested in exploring [linear algebra][linear-algebra-wiki] concepts through the **JMatrix** library and by using [Java](https://www.oracle.com/java). -## License +## License **JMatrix** is licensed under the [Apache License 2.0][apache-2.0]. This license permits you to use, modify, distribute, and sublicense the software, subject to certain conditions.