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

作者: daumda (行不行)   2017-03-03 00:37:30
大家好
想請教大家如何宣告一個長度不同的矩陣
一般來說矩陣都是宣告成n*n*n...
我今天有一組資料,裡面各組的長度並不相同
例如3組資料,每組各有2,3,4個數值
請問要如何使用allocate呢?
我第一次有這樣需求
目前只有最笨的方法,應該是直接開一個遠大於資料長度的矩陣
比如例子中使用a(10,3)
請問大家有別種作法嗎?
謝謝大家不吝指教!
作者: physbook (路克)   2017-03-03 10:26:00
要開夠大,其他放NaN。可以先用NaN(10, 3)把矩陣開好再填入資料。欸幹,沒注意到我在fortran板.....上面atlab的解法請自動忽略.......@@fortran的話,一樣開足夠大的矩陣,或是你可以先分析過資料看看最大長度有多長,矩陣的變數改成allocatable,在再allocate成最大長度的大小
作者: rex0707 (我就是我)   2017-03-03 13:17:00
可以用linked list省記憶體空間
作者: blc (Anemos)   2017-03-03 21:39:00
pointer ?
作者: rex0707 (我就是我)   2017-03-04 10:55:00
可以試試看compressed row storage的做法
作者: daumda (行不行)   2017-03-04 17:24:00
謝謝大家的意見,我來研究看看再回報

Links booklink

Contact Us: admin [ a t ] ucptt.com