2013-11-25 68 views
0

我想將表格數據轉換爲:24小時(24列)和30天(31行)成爲1列,第一天和第二天的連續小時數爲1-24一天等等。'從列轉換爲行

day/hours: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 
1   A B C ........................................................ 
2   A'B'C'..... 
... 
31 

Become 
________________ 
day1/1hour A 
day1/2hour B 
day1/3hour C 
.......... 
day2/1hour A' 
day2/2hour B' 
.... 
day31/1hour A''' 
day31/2hour B''' 
day31/24hour Z'''' 
+0

您可以在MATLAB中使用reshape()函數。我不確定excel。 – Falimond

+1

在MATLAB中重構之前,您必須進行轉置 - MATLAB使用列主要順序,而OPs數據按行順序排列。 – MrAzzaman

+0

謝謝,如果從col到Row的轉換是我可以輕鬆地使用重塑和轉置。但直到幾小時,如何轉換,但直到最後每天都會持續24小時。假設我有24 x 31併成爲1列x(24小時x 31天)行 – HongQuan

回答

0

如果您的數據被存儲爲一個矩陣A,然後就可以用一行代碼

A_asColumn = reshape(A',[],1); 

注移調A'做到這一點,如MATLAB中列優先的順序進行操作,並且您可以通過[]reshape指「兼容的行數」。

如果您的問題是如何讀取數據表,請參閱textreadimportdata函數。

+0

謝謝TheNoble這麼多。 – HongQuan

0

我打算假設您的值表(包括標題)在D1:AB32中。

添加以下內容:

  • A1: 「節」
  • A2:= QUOTIENT((ROW() - 2),24)1
  • 拷貝下來山口一種用於744行
  • B1: 「小時」
  • B2:= MOD(ROW() - 2,24)+1
  • 複製下來列B
  • C1: 「值」
  • C2:= HLOOKUP(B2,$ E $ 1:$ AB $ 32 A2 + 1,FALSE)
  • 拷貝下來COLÇ