从列转换为行

时间:2013-11-25 01:55:52

标签: excel matlab converter

我想将表格数据转换为:24小时(24列),30天(31行)变为1列,其中第1天和第2天的连续小时数为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''''

2 个答案:

答案 0 :(得分:0)

我将假设你的价值表(包括标题)在D1:AB32。

添加以下内容:

  • A1:“Day”
  • A2:= QUOTIENT((ROW() - 2),24)+1
  • 将col A向下复制744行
  • B1:“小时”
  • B2:= MOD(ROW() - 2,24)+1
  • 将其复制到col B
  • C1:“价值”
  • C2:= HLOOKUP(B2,$ E $ 1:$ AB $ 32,A2 + 1,FALSE)
  • 向下复制col C

答案 1 :(得分:0)

如果您的数据存储为矩阵A,那么您可以使用单行

进行此操作
A_asColumn = reshape(A',[],1);

请注意转置A',因为MATLAB按列主要顺序运行,并且您可以将[]传递给reshape以表示“兼容的行数”。

如果您的问题是如何阅读数据表,请参阅textreadimportdata函数。