将矩阵的相同列放入Matlab中的单元格

时间:2018-07-12 08:19:04

标签: matlab matrix concatenation cell

我有一个矩阵,如图所示。我想做的是将具有相同列名(“ 32,32”,“ 42,42”)的所有列(从第二列开始)以及列1中的相应元素放入一个单元格中。建议我如何前进?

matrix file

1 个答案:

答案 0 :(得分:1)

从图像看来,总是出现具有相同“列名”的列 作为一对并排。如果总是这样,则可以使用以下命令:

for i = 2:2:size(data,2)
    myCell{i/2} = [data(2:end,1) data(2:end,[i, i+1])];
end

否则,您将必须搜索具有相同“列名”的列:

columnNames = unique(data(1,2:end));
myCell = cell(1,numel(columnNames));
for i = 1:numel(myCell)
    idx = data(1,:) == columnNames(i);
    myCell{i} = [data(2:end,1), data(2:end,idx)];
end