【发布时间】:2017-01-09 11:47:05
【问题描述】:
假设我有一个名为data 的单元格,其中包含三个元素。每个单元格元素都包含一个 (n x 2) 矩阵。 data中每个单元格的第一列是它旁边数据的ID,而第二列是实际数据。请注意,我正在使用的实际 data 不包含 rand 数字,而是实际的特定数字。
data = cell(1,3);
data{1} = [1 rand ;
2 rand ;
3 rand ;
4 rand];
data{2} = [2 rand ;
3 rand ;
4 rand ;
5 rand ;
6 rand];
data{3} = [2 rand ;
5 rand ;
6 rand ;
7 rand ;
8 rand ;
9 rand];
我想将data 的内容重新排列成一个名为rearrange 的矩阵,如下所示。可以看到,ID1只存在于data{1},所以rand在rearrange的第一行的第三列和第四列被认为是0。可以看到,ID9只存在于data{3},所以rand在rearrange的第9行第2列和第3列被认为是0。
rearrange = [1 rand 0 0 ;
2 rand rand rand ;
3 rand rand 0 ;
4 rand rand 0 ;
5 rand rand rand ;
6 0 rand rand ;
7 0 0 0 ;
8 0 0 rand ;
9 0 0 rand];
在这种情况下,唯一 ID 是 1:9,但我想自动生成唯一 ID 列表,而不仅仅是说 1:9。
【问题讨论】:
-
旁注,
rearrange是一个内置的 matlab 函数,所以尽可能不要用作变量名 -
@Trogdor 我想我可能使用的是旧版本,
rearrange似乎不存在(2015a)。不过下次我会小心的。 -
@Senyokbalgul,你说得对,重新排列不是函数,我很困惑
标签: matlab matrix indexing cell-array