2012-11-25 75 views
1

我不得不從文件讀取數據並將所有數據存儲在一維數組中。 但是,我必須存儲在矩陣(2維數組)中的一些數據我該如何做到這一點?如何將簡單數組轉換爲Fortran中的二維數組(矩陣)?

例如,如果我的數據是1x7數組[1,2,3,1,5,2,8]和第一到第六屬於一個矩陣2x3我怎麼能存儲在一個新的數組變量?

回答

4

假設你的7個元素的數組稱爲array7,那麼下面的表達式應返回2x3陣列含有的array7

reshape(array7(1:6),[2,3]) 

前6個元件如果放元件到新陣列中的錯爲了嘗試

reshape(array7(1:6),[2,3],order=[2,1]) 

請注意,我在第二版中使用了一個名爲可選參數,還有一個可選的參數(pad),這將是,通過d默認情況下,reshape的第三個參數。

+0

嗨。我寫了一段代碼@High Performance Mark [link = codeinPasteBin](http://pastebin.com/gg2vskgL),激發了你所說的話。但是,我在重塑指令時遇到了錯誤。 重塑(inArray(1:6),[2,ntens])錯誤:在不可分類的聲明(1) reshapeArray.f90:29.26: 寫(*,*)inArray(I,1:2) 錯誤:(1)(2/1) – marco

+1

上的數組引用中的排名不匹配您必須親自完成一些工作。如果你閱讀文檔,你會發現'reshape'是一個返回數組的內部函數;你必須像這樣使用它:'result = reshape(...)'。 'reshape'不是一個Fortran語句。 –

+0

謝謝你,你是對的! – marco

相關問題