Matlab 按行和列搜索矩阵

Matlab 按行和列搜索矩阵,matlab,matrix,Matlab,Matrix,假设我有矩阵 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 [

假设我有矩阵

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]


etc

这确实适用于我的情况,但是对于我的特殊需要,m.s.有一个更好的答案。不过谢谢你!是的,再次阅读你的问题,m.s.的答案似乎更合适
result{2,2} =
     3     5
result{3,2} =
     2     6