【问题标题】:What is the java representation of size in matlabmatlab中大小的java表示是什么
【发布时间】:2013-03-15 14:28:48
【问题描述】:

这是 Matlab 中定义的尺寸函数,如文档中所示:

m = size(X,dim) returns the size of the dimension of X specified by scalar dim.

1) 鉴于 X 是 java 中的单个数组,我将如何使用 Java 复制此方法。

【问题讨论】:

    标签: java arrays matlab


    【解决方案1】:

    Matlab 只是将矩阵和 n 维数据线性存储在一个数组中。每个维度的大小与数组一起保存,因此当您进行非线性索引时,Matlab 知道要返回哪个元素(例如,A(3,5) 对于 5x5 矩阵,Matlab 知道它应该返回元素 A(23),即 3+(5-1)*5)。

    因此,在 java 中,如果数组的大小为 N1xN2x...xNN,并且您正在寻找元素:(X1,X2,...,XN),那么您应该在数组中找到位置为:X1+(X2-1)*N1+(X3-1)*N1*N2+ ... +(XN-1)*NN-1*..*N1 的元素...

    【讨论】:

      【解决方案2】:

      如果您只想要数组的大小(任何维度),您有一个属性Array.length

      来自JLS

      public final 字段长度,包含组件个数 的数组。长度可以是正数或零。

      例如:

      int[] arr = new int[10];
      int length = arr.length; //would obtain 10
      

      【讨论】:

        【解决方案3】:

        Java 中的数组只有一维:元素的数量。您只需使用属性Array.length 即可访问它。对于更复杂的容器(例如ArrayList),您通常可以使用成员函数size()

        int[] array = new int[5];
        int arrayLength = array.length; //arrayLength == 5
        
        ArrayList<int> arrayList = new ArrayList();
        arrayList.add(1);
        arrayList.add(2);
        int arrayListLength = arrayLis.size(); //arrayListLength == 2
        

        【讨论】:

          猜你喜欢
          • 2014-12-19
          • 1970-01-01
          • 2011-01-07
          • 2017-05-04
          • 2013-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-02
          相关资源
          最近更新 更多