網站首頁 編程語言 正文
前言
矩陣的轉置主要考查我們對循環的使用,通過簡單的循環結構,我們可以很方便的完成矩陣的轉置。
一、思路分析
轉置矩陣與原矩陣的區別在于行列交換,我們可以構建一個二維數組完成對原矩陣的存儲,我們只需將每個元素與其行列相反的位置處的元素進行交換,就可完成對矩陣的轉置。
二、代碼實現
1.轉置矩陣函數
我們首先編寫一個函數,完成對矩陣的轉置。
代碼如下(示例):
/* Alkaid#3529 */ // 轉職矩陣函數,按照指定的矩陣大小將矩陣轉置 void transpose_matrix(int matrix[10][10], int a); // 函數實現 void transpose_matrix(int matrix[10][10], int a) // int matrix[10][10] 為存儲矩陣的數組,int a 為所需轉置矩陣的大小 { int mid = 0; // 中間量,輔助值的傳遞 for (int i = 0; i < a; i++) // 從行開始,逐行檢索 { for (int j = i + 1; j < a; j++) // 對該行每一列的元素檢索 { // 將對應位置的兩個元素交換位置 mid = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = mid; } } return; }
2.調用函數實現轉置矩陣
我們在主函數中只需調用已經寫好的函數,對轉置前后的矩陣分別輸出即可。
代碼如下(示例):
/* Alkaid#3529 */ #include<iostream> using namespace std; // 轉職矩陣函數,按照指定的矩陣大小將矩陣轉置 void transpose_matrix(int matrix[10][10], int a); int main() { int matrix[10][10]; int size = 0; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { matrix[i][j] = (i * i + j * i + j ^ i) % 10; } } // 讀入要求的矩陣大小,方便起見,使用矩陣的默認值,默認為方陣 cout << "請輸入矩陣的尺寸 (方便起見,矩陣大小設在10以內) :\n"; cout << "size = "; cin >> size; cout << "\n原矩陣為:\n"; // 輸出原矩陣 for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { cout << matrix[i][j] << " "; } cout << endl; } transpose_matrix(matrix, size); cout << "\n轉置后的矩陣為:\n"; // 輸出轉置后的矩陣 for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { cout << matrix[i][j] << " "; } cout << endl; } return 0; } void transpose_matrix(int matrix[10][10], int a) // int matrix[10][10] 為存儲矩陣的數組,int a 為所需轉置矩陣的大小 { int mid = 0; // 中間量,輔助值的傳遞 for (int i = 0; i < a; i++) // 從行開始,逐行檢索 { for (int j = i + 1; j < a; j++) // 對該行每一列的元素檢索 { // 將對應位置的兩個元素交換位置 mid = matrix[i][j]; matrix[i][j] = matrix[j][i]; matrix[j][i] = mid; } } return; }
運行程序,看看效果如何。
正常運行,且功能完整,可以放心復制黏貼使用。
總結
矩陣轉置,除了本文介紹的方法外,還可以利用三元組的形式完成對稀疏矩陣的轉置,感興趣的話不妨點個關注,會在后續的數據和結構與算法專欄進行詳細講解哦!
原文鏈接:https://blog.csdn.net/qq_51661256/article/details/122264174
相關推薦
- 2022-12-21 k8s安裝CICD?devtron過程詳解_云其它
- 2022-12-04 Python中的配對函數zip()解讀_python
- 2022-06-20 樹莓派ASP.NET環境配置過程詳解_實用技巧
- 2022-03-23 安裝tomcat后可能出現的問題介紹_Tomcat
- 2022-10-11 C++eof()判斷是否讀取到文件尾
- 2022-09-22 Python 閉包與裝飾器
- 2023-03-23 Android進階CoordinatorLayout協調者布局實現吸頂效果_Android
- 2022-12-09 Python網絡編程之Python編寫TCP協議程序的步驟_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支