[问题] 如何开一个每列长度不同的矩阵?

楼主: 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