[問題] 如何開一個每列長度不同的矩陣?

看板Fortran作者 (行不行)時間7年前 (2017/03/03 00:37), 編輯推噓3(308)
留言11則, 4人參與, 最新討論串1/2 (看更多)
大家好 想請教大家如何宣告一個長度不同的矩陣 一般來說矩陣都是宣告成n*n*n... 我今天有一組資料,裡面各組的長度並不相同 例如3組資料,每組各有2,3,4個數值 請問要如何使用allocate呢? 我第一次有這樣需求 目前只有最笨的方法,應該是直接開一個遠大於資料長度的矩陣 比如例子中使用a(10,3) 請問大家有別種作法嗎? 謝謝大家不吝指教! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.104.107 ※ 文章網址: https://www.ptt.cc/bbs/Fortran/M.1488472653.A.5FE.html

03/03 10:26, , 1F
要開夠大,其他放NaN。可以先用NaN(10, 3)把矩陣開好再
03/03 10:26, 1F

03/03 10:26, , 2F
填入資料。
03/03 10:26, 2F

03/03 10:27, , 3F
欸幹,沒注意到我在fortran板.....上面atlab的解法請自
03/03 10:27, 3F

03/03 10:27, , 4F
動忽略.......@@
03/03 10:27, 4F

03/03 10:28, , 5F
fortran的話,一樣開足夠大的矩陣,或是你可以先分析過
03/03 10:28, 5F

03/03 10:28, , 6F
資料看看最大長度有多長,矩陣的變數改成allocatable,
03/03 10:28, 6F

03/03 10:28, , 7F
在再allocate成最大長度的大小
03/03 10:28, 7F

03/03 13:17, , 8F
可以用linked list省記憶體空間
03/03 13:17, 8F

03/03 21:39, , 9F
pointer ?
03/03 21:39, 9F

03/04 10:55, , 10F
可以試試看compressed row storage的做法
03/04 10:55, 10F

03/04 17:24, , 11F
謝謝大家的意見,我來研究看看再回報
03/04 17:24, 11F
文章代碼(AID): #1Ok4fDN- (Fortran)
文章代碼(AID): #1Ok4fDN- (Fortran)