【发布时间】:2015-06-29 16:30:09
【问题描述】:
假设我有矩阵
dataSet = [400,300,200,100,200,300,400;
1, 2, 3, 4, 5, 6, 7]
这将给我一个 2x7 数组,其中第 1 行的数字较大,第 2 行的数字较小。
假设我得到了数字 200,并要求我找出低于 200 的所有数字是什么。答案是 3 和 5,因为它们都对应 200,但是如何将其编码到我的脚本中呢?
【问题讨论】:
假设我有矩阵
dataSet = [400,300,200,100,200,300,400;
1, 2, 3, 4, 5, 6, 7]
这将给我一个 2x7 数组,其中第 1 行的数字较大,第 2 行的数字较小。
假设我得到了数字 200,并要求我找出低于 200 的所有数字是什么。答案是 3 和 5,因为它们都对应 200,但是如何将其编码到我的脚本中呢?
【问题讨论】:
>> dataSet(2,dataSet(1,:) == 200)
ans =
3 5
【讨论】:
这是你想要的吗?
[t, ~, u] = unique(dataSet(1,:));
result = accumarray(u, dataSet(2,:).', [], @(x) {x.'});
result = [num2cell(t).' result];
在您的示例中,这给出了:
>> result
result =
[100] [ 4]
[200] [1x2 double]
[300] [1x2 double]
[400] [1x2 double]
与
result{2,2} =
3 5
result{3,2} =
2 6
等
【讨论】: