Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 二维数组排序条件_Arrays_Matlab - Fatal编程技术网

Arrays 二维数组排序条件

Arrays 二维数组排序条件,arrays,matlab,Arrays,Matlab,我有一个2d数组,它由 )。点(i)y轴坐标的第一行 )。点(i)x轴坐标的第二行 )。我 让我们考虑下面的 a(1,:)=[1,2,3,4,10,11,12,13,19,20,21,22]; a(2,:)=[4,1,3,2,4,3,1,2,3,2,4,1]; a(3,:)=[1,2,3,4,5,6,7,8,9,10,11,12]; 根据上面的数组“a”,它表明它根据第一列(根据y坐标)短路 但在我的例子中,我想用以下步骤对它们进行排序 确定y坐标的两个连续值之间的差值(a(a,:)的值

我有一个2d数组,它由

  • )。点(i)y轴坐标的第一行
  • )。点(i)x轴坐标的第二行
  • )。我
  • 让我们考虑下面的

    a(1,:)=[1,2,3,4,10,11,12,13,19,20,21,22];
    
    a(2,:)=[4,1,3,2,4,3,1,2,3,2,4,1];
    
    a(3,:)=[1,2,3,4,5,6,7,8,9,10,11,12];
    
    根据上面的数组“a”,它表明它根据第一列(根据y坐标)短路

    但在我的例子中,我想用以下步骤对它们进行排序

    • 确定y坐标的两个连续值之间的差值(a(a,:)的值)快速变化且
    • 对那些相对于x坐标(a(2,:)快速变化的值进行排序

    让我们考虑下面的

    a(1,:)=[1,2,3,4,10,11,12,13,19,20,21,22];
    
    a(2,:)=[4,1,3,2,4,3,1,2,3,2,4,1];
    
    a(3,:)=[1,2,3,4,5,6,7,8,9,10,11,12];
    
    a=

    这里第4行表示两个连续y坐标(a(1,:)之间的差

    有第五个值表示快速变化,所以我要考虑前4个值集,并分析X和Y坐标W.R.T x坐标(A(2,))< /P> 以同样的方式对整个数组和下面的数组表示了预期的结果

    a=

    附注:

    不应更改第三列的值

    快速变化不是像上面那样在同一时期内得到的,它是变化的。(在我的例子中,它发生在每4个值之后)

    快速变化不是每时每刻都是6(如果值大于3,则溶液应方便)

    • 有人能帮我把这个编码吗*

      • 我对你想要什么有点困惑。此代码将数组分组为块,在块中它们仅按正常量(由变量normalchange指定)进行更改。它将生成一个单元数组,其中每个单元都是一组相似的元素。在这种情况下,正常变化为1,然后得到三组

        让我知道这是否有帮助

        a(1,:)=[1,2,3,4,10,11,12,13,19,20,21,22];
        
        a(2,:)=[4,1,3,2,4,3,1,2,3,2,4,1];
        
        a(3,:)=[1,2,3,4,5,6,7,8,9,10,11,12];
        
        interestedmembers=0;
        thingtoanalyse={};
        startOfMembers=1;
        normalchange = 1;
        for i=2:size(a,2)
            if a(1,i)-a(1,i-1) > normalchange
                thingtoanalyse{end+1}=a(:,startOfMembers:startOfMembers+...
                    interestedmembers);
                interestedmembers=0;
                startOfMembers = i-1;
            end
            interestedmembers = interestedmembers+1;
        end
        % catch everything after the last jump and classify as interesting.
        thingtoanalyse{end+1} = a(:,startOfMembers:end);
        
        有人能帮我编码吗?这一个能帮我,当然价格合适。一般来说,最好的做法是提前付款,或者添加自己的代码,以表明您已经为解决此问题付出了努力。无论哪种方式都会吸引这里的人。你多次提到“快速变化”。这是模棱两可的,请确切地说出你的意思。
        a(1,:)=[1,2,3,4,10,11,12,13,19,20,21,22];
        
        a(2,:)=[4,1,3,2,4,3,1,2,3,2,4,1];
        
        a(3,:)=[1,2,3,4,5,6,7,8,9,10,11,12];
        
        interestedmembers=0;
        thingtoanalyse={};
        startOfMembers=1;
        normalchange = 1;
        for i=2:size(a,2)
            if a(1,i)-a(1,i-1) > normalchange
                thingtoanalyse{end+1}=a(:,startOfMembers:startOfMembers+...
                    interestedmembers);
                interestedmembers=0;
                startOfMembers = i-1;
            end
            interestedmembers = interestedmembers+1;
        end
        % catch everything after the last jump and classify as interesting.
        thingtoanalyse{end+1} = a(:,startOfMembers:end);