簡體   English   中英

在MatLab中有效的R中的reshape2中是否存在類似的“融化”功能?

[英]Is there a similar function to 'melt' in reshape2 in R that works in MatLab?

我試圖在MatLab中找到一個類似於R包“reshape2”中的'melt'函數的函數,這樣就可以為每個變量重復行標題並將它們堆疊在一起。

例如:

如果我有一個矩陣

A  1  2  3 
B  4  5  6
C  7  8  9

我想改成它

A 1
A 2
A 3
B 4
B 5
B 6
C 7
C 8
C 9

如果沒有使用for()循環來成對地通過每一列,是否有一個函數可以做到這一點?

非常感謝,KRB

MATLAB具有stackunstack功能,上表中,其類似於操作meltcast 像這樣的東西會起作用

groups = {'A'; 'B'; 'C'};
A1 = [1; 4; 7];
A2 = [2; 5; 8];
A3 = [3 ; 6; 9];

T = table(groups, A1, A2, A3)
TLong = stack(T, 2:4)

這使

TLong = 

    groups    A1_A2_A3_Indicator    A1_A2_A3
    ______    __________________    ________

    'A'       A1                    1       
    'A'       A2                    2       
    'A'       A3                    3       
    'B'       A1                    4       
    'B'       A2                    5       
    'B'       A3                    6       
    'C'       A1                    7       
    'C'       A2                    8       
    'C'       A3                    9       

請注意,您的示例矩陣不能存在於Matlab(或R)中,因為矩陣不能包含字符串或混合類型。 如果您想使用內置函數,我建議您將現有的任何結構轉換為table

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM