【发布时间】:2014-04-01 22:16:20
【问题描述】:
作为 MATLAB 的新手,我发现自己总是使用类似 C++ 的循环,而不是利用基于矩阵的操作。今天又遇到一个问题。
假设我有两个双列表(单元格数组),第一列是用户 ID,第二列是相应的值。但是,它们在行中具有不同的大小。即
Table 1
1 2.56
2 7.4
3 7.7
...
100 83.4
Table 2
1 7.1
3 1.4
4 4.4
...
76 7.2
尽管行大小不同,但这两个表实际上共享一些共同的 ID。 现在我希望形成一个大小为Nx3 的新元胞数组,其中N 是公共ID 的数量,第一列和第二列分别是表1 和表2 中的值。即
New Table
1 2.56 7.1
3 7.7 1.4
...
同样,我可以使用循环来执行此操作,但我真的很想学习一种类似于 MATLAB 的方法。
【问题讨论】:
-
您对任何答案是否满意。我个人认为
ismember是最“MATLAB-ish”的解决方案。 ;) 我用排序数据证明它更快。 -
@chappjc 是的,我同意。太棒了!非常感谢详细的分析! :D