【发布时间】:2014-11-28 12:29:03
【问题描述】:
不幸的是,我必须使用单元数组的数据集,它们甚至没有相同的输入.. 我的数据集(元胞数组的相关列)如下所示:
Data =
1 'd2'
1 'd3'
2 'u2'
2 'd2'
2 'u3'
3 'e2'
... ...
我想以某种方式重塑它们,即第一列中包含相同数字的所有行的第二列的所有输入都存储在新列中。因为第一列中每个数字的单行并不总是相同(但最高为 4),所以我编写了以下代码:
% creating 4 new cell arrays for the new columns
cells = cell(length(Data(:,1)),4);
Data = [Data,cells];
% reshaping Data
Data(:,3:6) = reshape(Data(Data(:,1) == 1,2),1,[]);
Data(:,3:6) = reshape(Data(Data(:,1) == 2,2),1,[]);
这可以完美地处理矩阵。但不幸的是,它不适用于单元阵列! 请你帮我,我必须把大括号放在哪里,这样它会起作用吗?到目前为止我还没有得到它,也许我现在只是在监督它! ;-)
非常感谢!
【问题讨论】:
-
所以您想要像
1 d2 d3、2 u2 d2 u3等输出行? -
是的,就是这样
标签: matlab reshape cell-array