{"id":30315752,"url":"https://github.com/ledangquangdangquang/matlab-tutorial","last_synced_at":"2025-08-17T19:50:27.629Z","repository":{"id":299551499,"uuid":"938688551","full_name":"ledangquangdangquang/Matlab-Tutorial","owner":"ledangquangdangquang","description":"Readme tutorial for matlab","archived":false,"fork":false,"pushed_at":"2025-02-25T10:50:02.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-17T05:38:33.616Z","etag":null,"topics":["matlab","matlab-gui","matlabtutorial","tutorial"],"latest_commit_sha":null,"homepage":"https://ledangquangdangquang.notion.site/Matlab-19e38e416e5a801d9264d2b0bc755268","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ledangquangdangquang.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-25T10:49:56.000Z","updated_at":"2025-02-25T10:53:10.000Z","dependencies_parsed_at":"2025-06-17T05:48:38.641Z","dependency_job_id":null,"html_url":"https://github.com/ledangquangdangquang/Matlab-Tutorial","commit_stats":null,"previous_names":["ledangquangdangquang/matlab-tutorial"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ledangquangdangquang/Matlab-Tutorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ledangquangdangquang%2FMatlab-Tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ledangquangdangquang%2FMatlab-Tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ledangquangdangquang%2FMatlab-Tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ledangquangdangquang%2FMatlab-Tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ledangquangdangquang","download_url":"https://codeload.github.com/ledangquangdangquang/Matlab-Tutorial/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ledangquangdangquang%2FMatlab-Tutorial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270899520,"owners_count":24664715,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-17T02:00:09.016Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["matlab","matlab-gui","matlabtutorial","tutorial"],"created_at":"2025-08-17T19:50:21.892Z","updated_at":"2025-08-17T19:50:27.608Z","avatar_url":"https://github.com/ledangquangdangquang.png","language":null,"readme":"# Matlab\n\n# $y = sin(t)$\n\n- Tạo trục $t$:  `t = 1:0.001:2` là 1 đoạn từ 0 đến 2 khoảng cách là 0.001\n- `y = sin(t)` là tạo 1 hình sin thôi\n- Có một chú ý là tất cả các biến trong matlab đều là 1 ma trận :\n    - `t` là ma trận `1x1001`\n    - `y` là ma trận `1x1001`\n\n---\n\n## Plot\n\n- `plot(t, y)` là vẽ trục y theo trục t\n- `plot(y)` là vẽ trục y theo chỉ số các cột của nó\n- `plot(y,'r--*')` là vẽ trục y theo chỉ số của nó với **màu đỏ nét đứt, mỗi điểm là 1 dấu ***\n- `plot(t, y, 'ro', 'MarkerSize', 3, 'MarkerFaceColor', 'b')`\n- `plot(pos_centers(1,:), pos_centers(2,:), 'ro', 'MarkerSize', 3, 'MarkerFaceColor', 'b');` là vẽ tất cả các điểm của pos_centers với tọa độ như sau: cột `:` lấy x ở hàng 1 và y ở hàng 2\n- Các **color, marker, line style** trong plot\n    \n    \n    ### 3. **Dấu Marker (Marker Style)**\n    \n    | Marker | Ký hiệu |\n    | --- | --- |\n    | Dấu chấm | `'.'` |\n    | Dấu tròn | `'o'` |\n    | Dấu sao | `'*'` |\n    | Dấu cộng | `'+'` |\n    | Dấu x | `'x'` |\n    | Vuông | `'s'` |\n    | Hình thoi | `'d'` |\n    | Tam giác lên | `'^'` |\n    | Tam giác xuống | `'v'` |\n    | Tam giác phải | `'\u003e'` |\n    | Tam giác trái | `'\u003c'` |\n    | Năm cánh | `'p'` |\n    | Sáu cánh | `'h'` |\n    \n    ### 2. **Kiểu đường (Line Style)**\n    \n    | Kiểu đường | Ký hiệu |\n    | --- | --- |\n    | Đường liền | `'-'` |\n    | Đường đứt | `'--'` |\n    | Đường chấm | `':'` |\n    | Gạch - chấm | `'-.'` |\n    \n    ### 1. **Màu sắc (Color)**\n    \n    | Màu | Ký hiệu | Mã RGB (normalized) |\n    | --- | --- | --- |\n    | Đỏ | `'r'` | `[1, 0, 0]` |\n    | Xanh lá | `'g'` | `[0, 1, 0]` |\n    | Xanh dương | `'b'` | `[0, 0, 1]` |\n    | Lục lam | `'c'` | `[0, 1, 1]` |\n    | Hồng | `'m'` | `[1, 0, 1]` |\n    | Vàng | `'y'` | `[1, 1, 0]` |\n    | Đen | `'k'` | `[0, 0, 0]` |\n    | Trắng | `'w'` | `[1, 1, 1]` |\n\n---\n\n- `title('this is a title')` là tạo tiêu đề cho hình vẽ\n\n- `xlabel('x')` là đặt tên cho trục x\n- `ylabel('y')` là đặt tên cho trục y\n- `xlim([min max])` thiết lập giới hạn trục x\n- `ylim([min max])` thiết lập giới hạn trục y\n- `legend('chú giải')` tạo chú giải cho đường hình sin đã vẽ\n- `grid('on')` bật lướt trục tọa độ\n\n---\n\n### $x = cos(t)$\n\n- `hold on` giữ lại chưa vẽ plot\n- `hold off` không giữ nữa (mục đích để vẽ 2 hay nhiều đồ thị trên 1 hình)\n- `plot(t,y); hold on; plot(t,x); hold off` vẽ cả y và x trên cùng một trục tọa độ \\\n- `legend('y','x')` chú giải cho 2 đường y(t) và x(t)\n    \n    ---\n    \n- `subplot(m, n, p)` chia hình làm m x n slot (m hàng, n cột) và p là vị trí slot đang đứng\n    - Ví dụ: `subplot(1,2,1); plot(t,y); hold on; subplot(1,2,2); plot(t,x)`\n\n## Stem\n\n- Dùng y như `plot` nhưng cho tín hiệu rời rạc cụ thể thì có hình minh họa sau:\n    \n    ![untitled.jpg](untitled.jpg)\n    \n\n# Matrix\n\n- Chỉ số của ma trận, mảng hay bất kỳ gì đều có chỉ số bắt đầu từ 1\n- `y =[0 1 2 3 4 5; 0 1 2 3 4 5]` tạo 1 ma trận\n    \n    $$\n    \n    y = \\begin{bmatrix}\n    0 \u0026 1 \u0026 2 \u0026 3 \u0026 4 \u0026 5 \\\\\n    0 \u0026 1 \u0026 2 \u0026 3 \u0026 4 \u0026 5\n    \\end{bmatrix}\n    \n    $$\n    \n\n---\n\n### Phép toán trong ma trận\n\n- `y .^ 2` các phần tử trong y đều được bình phương\n- `y .* 2` các phần tử trong y đều được nhân 2\n- `det(y)` lấy định thức (chỉ dùng cho ma trận vông)\n- `y'` chuyển vị ma trận (và liên hợp phức luôn á)\n- `mod(3,2)` lấy phần dư trong phép 3/2\n- …\n\n---\n\n### SVD (singular value decomposition)\n\n- `[ u s v ] = svd(y)` biến đổi svd cho ma trận y rồi lưu vào các biến u s v\n- `s = diag(s)` chuyển s thành vector chứa các phần tử đường chéo\n\n---\n\n### Tạo ma trận\n\n- `eye(3)` tạo ma trận đơn vị 3x3\n- `rand(3, 2)` tạo ma trận random 3x2\n- `randn(3, 2)` tạo ma trận random 3x2 với phân phối chuẩn\n- `randi([1, 10], 3, 3)` tạo ma trận random 3x3 trong khoảng từ 1 đến 10\n\n---\n\n- `size(y)` trả về kích thước của ma trận ở đây là 2 6\n- `length(y)` trả về kích thước lớn nhất của ma trận là 6\n\n# Vòng lặp\n\n- `for`\n    \n    ```matlab\n    for x = 0:2:10\n        disp(x);\n    end\n    ```\n    \n    x chạy từ 0 → 10 mỗi lần chạy tăng 2  (nói chung x giống như t ở phần y = sin(t) á)\n    \n- `while`\n    \n    ```matlab\n    x = 1;\n    while x \u003c= 5\n        fprintf('Giá trị của x: %d\\n', x);\n        x = x + 1;\n    end\n    ```\n    \n    chạy nếu điều kiện x ≤ 5 vẫn đúng \n    \n- Chú ý\n    - Có thể dùng các từ khóa **`break;`** hoặc `continue;` để thoát vòng lặp hoặc tiếp tục vòng lặp.\n    - Mọi câu lệnh thì luôn có `end` để báo hiệu kết thúc.\n\n---\n\n# Câu điều kiện\n\n- Câu lệnh `if - else` :\n    \n    ```matlab\n    if condition\n        % Lệnh thực thi nếu condition đúng\n    elseif another_condition\n        % Lệnh thực thi nếu another_condition đúng\n    else\n        % Lệnh thực thi nếu không có điều kiện nào đúng\n    end\n    ```\n    \n- Câu lệnh `switch - case` :\n    \n    ```matlab\n    switch variable\n        case value1\n            % Lệnh khi variable == value1\n        case value2\n            % Lệnh khi variable == value2\n        otherwise\n            % Lệnh mặc định nếu không khớp với case nào\n    end\n    ```\n    \n\n# Làm tròn số\n\n- `round(x)` làm tròn đến số nguyên gần nhất\n- `floor(x)` làm tròn xuống, ký hiệu toán học: $\\lfloor x \\rfloor$\n- `celi(x)` làm tròn lên, ký hiệu toán học: $\\lceil x \\rceil$\n- `fix(x)` làm cho phần thập phân bằng 0\n\n---\n\n- `round(x, n)` làm tròn đến `n` chữ số thập phân\n\n# Biến đổi nhị phân\n\n- `dec2bin(x)` Đổi `x` từ thập phân sang nhị phân (trả về `string`)\n- `de2bi(N,7,'left-msb')` đổi mảng `N` sang nhị phân 7 bit và `left-msb` là xếp các bit từ trái sang phải (mặc định `right-msb`) (trả về `vector`)","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fledangquangdangquang%2Fmatlab-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fledangquangdangquang%2Fmatlab-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fledangquangdangquang%2Fmatlab-tutorial/lists"}