常見程式演算:: 多維矩陣降維 - OpenHome.cc
文章推薦指數: 80 %
更高維度的可以自行類推,不過更高維度時,建議使用其他資料結構,比較具體也不易搞錯。
程式實作. C Java Python Scala
OPENHOME.CC
常見程式演算
|老掉牙
河內塔
費式數列
巴斯卡三角形
三色旗
老鼠走迷宮
騎士走棋盤
八皇后
八銀幣
康威生命遊戲
字串比對
背包問題
雙色、三色河內塔
得分排行
|「數」
最大訪客數
Eratosthenes篩選求質數
完美數
阿姆斯壯數
大數運算
指定位數的圓周率
|隨機
蒙地卡羅法求PI
洗牌
Craps賭博遊戲
約瑟夫問題
|組構
排列
格雷碼
子集
k組合
因數分解
加法因子
|排序
選擇、插入、氣泡排序
Heap排序-改良的選擇排序
Shell排序-改良的插入排序
Shaker排序-改良的氣泡排序
快速排序(一)
快速排序(二)
合併排序
基數排序
|搜尋
線性搜尋
二分搜尋
插補搜尋
費氏搜尋
|矩陣
稀疏矩陣
多維矩陣降維
上/下三角、對稱矩陣
奇數魔方陣
4N魔方陣
2(2N+1)魔方陣
|運算
中序式轉後序式
後序式運算
Quine
GitHub
Twitter
Facebook
LinkedIn
Designs
Tags
BuiltwithbyHugo
HOME>
常見程式演算>
矩陣>
多維矩陣降維
解法思路
程式實作
dimensionreduction
matrix
C
Java
Python
Scala
Ruby
JavaScript
Haskell
多維矩陣降維
December12,2021
有時為了運算方便或儲存時空間問題,會將多維矩陣降維,例如,是將多面體的頂點攤平,並結合頂點索引來定義多面體,或者將上三角、下三角或對角矩陣降一維陣列,以節省空間,
解法思路
以二維陣列轉一維陣列為例,索引由0開始,看要以列為主(row-major)或以行為主(column-major)。
以列為主的二維陣列要降為一維時,是將二維陣列由上往下,逐列寫入一維陣列,此時索引的對應公式如下,其中row與column是二維陣列索引,loc表示對應的一維陣列索引:
loc=column+row*行數
以行為主的二維陣列要降為一維時,是將二維陣列由左往右,逐行寫入一維陣列,此時索引的對應公式如下:
loc=row+column*列數
若是三維陣列,公式如下,其中i(個數u1)、j(個數u2)、k(個數u3)分別表示三維陣列的三個索引:
以列為主:loc=i*u2*u3+j*u3+k
以行為主:loc=k*u1*u2+j*u1+i
更高維度的可以自行類推,不過更高維度時,建議使用其他資料結構,比較具體也不易搞錯。
程式實作
C
Java
Python
Scala
Ruby
JavaScript
Haskell
#include
延伸文章資訊
- 16-3 二維陣列
i 上C 語言 ... 二維陣列(two dimension array)表示法與一維陣列類似,是由兩個中括 ... 表示三維陣列,四個[],則為四維陣列,以此類推,所以下一敘述.
- 2常見程式演算:: 多維矩陣降維 - OpenHome.cc
更高維度的可以自行類推,不過更高維度時,建議使用其他資料結構,比較具體也不易搞錯。 程式實作. C Java Python Scala
- 3Lecture 7
一維字元陣列/ C 字串 ... 在C 語言中的C 字串即為一連串的字元並以值0 作為 ... 宣告一個四維陣列,共可儲存100 x 200 x 10 x 5 個不同的浮點.
- 4陣列
在int *pA[3], A[3]; 敘述中,我們是使用C 語言宣告兩個長度均為3 的陣列, ... 假設以C 語言宣告一個四維陣列int A[5][4][3][2];,試問,該陣列包含多. 少...
- 511-1 多維陣列的索引
在MATLAB 的資料型態中,向量可視為一維陣列,矩陣可視二維陣列,對於 ... Arrays,簡稱N-D Arrays),以下分別以二維陣列、三維陣列、及四維陣列來進行說明。