public class MWJavaObjectRef extends MWArray
MWJavaObjectRef
, специальный подкласс MWArray, может использоваться, чтобы создать массив MATLAB, это ссылается на объект Java.EMPTY_ARRAY
Конструктор и описание |
---|
MWJavaObjectRef(java.lang.Object o)
Пример: Инстанцируйте нового объекта компонента Разработчика:
|
Модификатор и тип | Метод и описание |
---|---|
<T> T |
applyVisitor(AbstractMWArrayVisitor<T> v) |
MWClassID |
classID()
Возвращает тип MATLAB этого массива.
|
java.lang.Object |
clone()
Пример: Клонирование (глубоко копирование) массив
|
int[] |
columnIndex()
Этот метод возвращает массив, содержащий индекс столбца каждого элемента в базовом массиве MATLAB.
|
int |
compareTo(java.lang.Object obj)
Этот метод сравнивает объект MWArray с входным объектом.
|
void |
dispose()
Освобождает нативный массив MATLAB, содержавший в этом массиве.
|
boolean |
equals(java.lang.Object obj)
Указывает, равен ли некоторый другой массив этому.
|
java.lang.Object |
get()
Пример: Получите информацию о ссылочном объекте
|
java.lang.Object |
get(int index)
Возвращает элемент при заданном смещении на основе 1 в этом массиве.
|
java.lang.Object |
get(int[] index)
Возвращает элемент в заданном массиве индекса на основе 1 в этом массиве.
|
java.lang.Object |
getData()
Возвращает 1D массив, содержащий копию данных в базовом массиве MATLAB.
|
int[] |
getDimensions()
Возвращает массив, содержащий размер каждой размерности этого массива.
|
int |
hashCode()
Возвращает значение хэш-кода для этого массива.
|
boolean |
isEmpty()
Этот метод возвращает true, если объект массивов не содержит элементов и лжи в противном случае.
|
boolean |
isSparse()
Этот метод возвращает true, если объект MWArray является разреженным, и ложным в противном случае.
|
int |
maximumNonZeros()
Возвращает выделенную способность разреженного массива.
|
int |
numberOfDimensions()
Возвращает количество размерностей этого массива.
|
int |
numberOfElements()
Возвращает общее количество элементов в этом массиве.
|
int |
numberOfNonZeros()
Возвращает количество ненулевых элементов в разреженном массиве.
|
int[] |
rowIndex()
Этот метод возвращает массив, содержащий индекс строки каждого элемента в базовом массиве MATLAB.
|
void |
set(int[] index, java.lang.Object element)
Заменяет элемент в заданном массиве индекса на основе 1 в этом массиве с указанным элементом.
|
void |
set(int index, java.lang.Object element)
Заменяет элемент при заданном смещении на основе 1 в этом массиве с указанным элементом.
|
void |
set(java.lang.Object o)
Пример: Установка массива к заданным значениям
|
void |
setData(java.lang.Object data) |
java.lang.Object |
sharedCopy()
Пример: Создание разделяемой копии массива
|
java.lang.Object[] |
toArray()
Возвращает массив, содержащий копию данных в базовом массиве MATLAB.
|
java.lang.String |
toString()
Пример: представление Возвращаемой строки массива
|
static java.lang.Object |
unwrapJavaObjectRefs(java.lang.Object obj)
Пример:
|
static java.lang.Object[] |
unwrapJavaObjectRefs(java.lang.Object[] array)
Пример:
|
disposeArray
public MWJavaObjectRef(java.lang.Object o)
Пример: Инстанцируйте нового объекта компонента Разработчика:
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); System.out.println("A = " + A.toString()); MWArray.disposeArray(A);Результат:
A = {b=5, a=3}
o
- Объект сослаться.public java.lang.Object clone() throws java.lang.CloneNotSupportedException
Пример: Клонирование (глубоко копирование) массив
Hashtable<tring,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); Object C = A.clone(); System.out.println("A = " + A.toString() + ", Clone of A = " + C.toString()); myHash.put("c", new Integer(7)); System.out.println("After change: A = " + A.toString() + ", Clone of A = " + C.toString()); A.set(new Integer(12)); System.out.println("After set: A = " + A.toString() + ", Clone of A = " + C.toString()); MWArray.disposeArray(A); MWArray.disposeArray(C);Начальные результаты:
A = {b=5, a=3}, Clone of A = {b=5, a=3}Результаты после изменения:
A = {b=5, a=3, c=7}, Clone of A = {b=5, a=3, c=7}Результаты, после того, как установлено:
A = 12, Clone of A = {b=5, a=3, c=7}
public java.lang.Object sharedCopy()
Пример: Создание разделяемой копии массива
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); Object S = A.sharedCopy(); System.out.println("A = " + A.toString() + ", Shared copy of A = " + S.toString()); myHash.put("c", new Integer(7)); System.out.println("After change: A = " + A.toString() + ", Shared copy of A = " + S.toString()); MWArray.disposeArray(A); MWArray.disposeArray(S);Начальные результаты следующие:
A = {b=5, a=3}, Shared copy of A = {b=5, a=3}Результаты после изменения:
A = {b=5, a=3, c=7}, Shared copy of A = {b=5, a=3, c=7}
sharedCopy
в классе MWArray
MWArray
экземпляр, представляющий разделяемую копию базового массива MATLAB.public boolean equals(java.lang.Object obj)
Пример: Указание, равны ли массивы:
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); Hashtable<String,Integer> myHash2 = new Hashtable<String,Integer>(); myHash2.put("a", new Integer(3)); myHash2.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); MWJavaObjectRef B = new MWJavaObjectRef(myHash); MWJavaObjectRef C = new MWJavaObjectRef(myHash2); System.out.println("Do A and B refer to the same object? " + A.equals(B)); System.out.println("Do A and C? " + A.equals(C)); MWArray.disposeArray(A); MWArray.disposeArray(B); MWArray.disposeArray(C);Результаты следующие:
Do A and B refer to the same object? true Do A and C? false
public int hashCode()
Пример: Возвратите хеш массива
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(8)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); int h = A.hashCode(); System.out.println("Hash of A is 0x" + Integer.toHexString(h)); MWArray.disposeArray(A);Результаты следующие:
Hash of A is 0xffffff33
public java.lang.String toString()
Пример: представление Возвращаемой строки массива
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); System.out.println("String representation of A is " + A.toString()); MWArray.disposeArray(A);Результаты следующие:
String representation of A is {b=5, a=3}
public int numberOfElements()
Пример: Возвратите число элементов в массиве
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); System.out.println("Number of elements in A is " + A.numberOfElements()); MWArray.disposeArray(A);Результаты следующие:
Number of elements in A is 1
numberOfElements
в классе MWArray
public int numberOfNonZeros()
numberOfElements()
.numberOfNonZeros
в классе MWArray
public int maximumNonZeros()
numberOfElements()
.maximumNonZeros
в классе MWArray
Пример: Отобразите максимальное количество ненулевых элементов в массиве
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); System.out.println("Maximum number of nonzero elements in A is " + A.maximumNonZeros()); MWArray.disposeArray(A);Результаты следующие:
Maximum number of nonzero elements in A is 1
public void dispose()
dispose
в интерфейсе Disposable
dispose
в классе MWArray
public java.lang.Object get()
Пример: Получите информацию о ссылочном объекте
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); System.out.println("A.get() = " + A.get()); System.out.println("Class of referenced object is " + A.get().getClass().toString()); System.out.println("Class of A is " + A.getClass().toString()); MWArray.disposeArray(A);Результаты следующие:
A.get() = {b=5, a=3} Class of referenced object is class java.util.Hashtable Class of A is class com.mathworks.toolbox.javabuilder.MWJavaObjectRef
public void set(java.lang.Object o)
Пример: Установка массива к заданным значениям
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); System.out.println("A = " + A.toString()); A.set(new Integer(12)); System.out.println("After set(), A = " + A.toString()); MWArray.disposeArray(A);Начальные результаты следующие:
A = {b=5, a=3}Результаты, после того, как установлено:
A = 12
o
- возразите, к которому массив должен собираться относитьсяpublic MWClassID classID()
classID
в классе MWArray
MWClassID
из этого массива Пример: Возврат типа MATLAB данного массива:
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(myHash); System.out.println("ClassID of A is " + A.classID()); MWArray.disposeArray(A);Результат:
ClassID of A is opaque
public java.lang.Object[] toArray()
toArray
возвращает действительную часть. Если основной массив разрежен, полное представление массива возвращено. Необходимо соблюдать осторожность при вызове toArray
на разреженном массиве с большими размерностями строки и столбца, когда это действие может память системы выпуска. Если основной массив является ячейкой или массивом структур, toArray
рекурсивно называется на каждой ячейке.toArray
в классе MWArray
Пример: Возвращаемый массив, содержащий копию данных в основном массиве плюс дополнительная информация о массиве
Integer myInt = new Integer(2); System.out.println("myInts = " + myInt.toString()); MWJavaObjectRef A = new MWJavaObjectRef(myInt); Object[] B = A.toArray(); System.out.println("Array form is an instance of " + B.getClass().toString()); System.out.println("B = " + B); System.out.println("Each element is an instance of " + B[0].getClass().toString()); System.out.println("B[0] = " + B[0]); System.out.println("A is an instance of " + A.getClass().toString()); MWArray.disposeArray(A);Результаты следующие:
myInts = 2 Array form is an instance of class [Ljava.lang.Object; B = [Ljava.lang.Object;@1d53f5b Each element is an instance of class java.lang.Integer B[0] = 2 A is an instance of class com.mathworks.toolbox.javabuilder.MWJavaObjectRef
public <T> T applyVisitor(AbstractMWArrayVisitor<T> v)
applyVisitor
в классе MWArray
public static java.lang.Object unwrapJavaObjectRefs(java.lang.Object obj)
Пример:
Hashtable<String,Integer> myHash = new Hashtable<String,Integer>(); myHash.put("a", new Integer(3)); myHash.put("b", new Integer(5)); MWJavaObjectRef A = new MWJavaObjectRef(new Integer(12)); System.out.println("A referenced the object: " + MWJavaObjectRef.unwrapJavaObjectRefs(A)); MWJavaObjectRef B = new MWJavaObjectRef(myHash); Object bObj = (Object)B; System.out.println("B referenced the object: " + MWJavaObjectRef.unwrapJavaObjectRefs(bObj));Результаты следующие:
A referenced the object: 12 B referenced the object: {b=5, a=3}
obj
- объект, содержащий ссылку, которая будет развернутаpublic static java.lang.Object[] unwrapJavaObjectRefs(java.lang.Object[] array)
MWJavaObjectRef A = new MWJavaObjectRef(new Integer(12)); MWJavaObjectRef B = new MWJavaObjectRef(new Integer(104)); Object[] refArr = new Object[2]; refArr[0] = A; refArr[1] = B; Object[] objArr = MWJavaObjectRef.unwrapJavaObjectRefs(refArr); System.out.println("refArr referenced the objects: " + objArr[0] + " and " + objArr[1]);Результаты следующие:
refArr referenced the objects: 12 and 104
array
- массив объектов, ссылки которых должны быть развернутыpublic int numberOfDimensions()
MWArray
int[][] Adata = {{ 1, 2, 3, 4, 5, 6}, { 7, 8, 9, 10, 11, 12}, {13, 14, 15, 16, 17, 18}}; MWNumericArray A = new MWNumericArray(Adata, MWClassID.INT32);
Пример: получение количества размерностей MWArray
Отобразите количество размерностей для объекта A массивов:System.out.println("Matrix A has " + A.numberOfDimensions() + " dimensions");Когда запущено, пример отображает этот вывод:
Matrix A has 2 dimensions
numberOfDimensions
в классе MWArray
public int[] getDimensions()
MWArray
int[][] Adata = {{ 1, 2, 3, 4, 5, 6}, { 7, 8, 9, 10, 11, 12}, {13, 14, 15, 16, 17, 18}}; MWNumericArray A = new MWNumericArray(Adata, MWClassID.INT32);
Пример: получение измерений массива MWArray
int[] dimA = A.getDimensions(); System.out.println("Dimensions of A are " + dimA[0] + " x " + dimA[1]);Когда запущено, пример отображает этот вывод:
Dimensions of A are 3 x 6
getDimensions
в классе MWArray
public boolean isEmpty()
MWArray
int[][] Adata = {{ 1, 2, 3, 4, 5, 6}, { 7, 8, 9, 10, 11, 12}, {13, 14, 15, 16, 17, 18}}; MWNumericArray A = new MWNumericArray(Adata, MWClassID.INT32);
Пример: тестирование на пустой MWArray
Отобразите сообщение, если объект A массивов является пустым массивом. В противном случае отобразите содержимое A:if (A.isEmpty()) System.out.println("Matrix A is empty"); else System.out.println("A = " + A.toString());Когда запущено, пример отображает содержимое A:
A= 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
public boolean isSparse()
MWArray
newSparse
метод, используемый в следующем примере: (2,1) 50 (1,2) 10 (2,2) 60 (1,5) 40 (2,5) 90
Пример: тестирование MWArray для разреженности
Протестируйте объект MWArray созданный ранее для разреженности:if (A.isSparse()) System.out.println("Matrix A is sparse");Когда запущено, пример отображает этот вывод:
Matrix A is sparse
public int compareTo(java.lang.Object obj)
MWArray
Пример: Сравнение MWArrays с compareTo
Создайте разделяемую копию объекта MWArray и затем сравните его с исходным объектом. Возвращаемое значение нуля указывает, что два объекта равны:Object S = A.sharedCopy(); if (A.compareTo(S) == 0) System.out.println("Matrix S is equal to matrix A");Когда запущено, пример отображает этот вывод:
Matrix S is equal to matrix A
public java.lang.Object get(int index)
MWArray
public Object get(int[] index)
.Пример: Получение Значения MWArray с добирается
int[] cdims = {1, 3}; MWArray C = new MWArray(cdims); Integer val = new Integer(15); int[] index2 = {1, 3}; C.set(index2, val); Object x = C.get(index2); if (x instanceof int[][]) { int[][] y = (int[][])x; System.out.println("B: Cell data C(1,3) is " + y[0][0]); }Когда запущено, пример отображает этот вывод:
B: Cell data C(1,3) is 15
public java.lang.Object get(int[] index)
MWArray
get
в классе MWArray
index
- Массив индексов, задающих местоположение требуемого элемента. Длина массива индекса должна быть точно количеством размерностей этого массива. Каждый элемент массива индекса имеет допустимую область значений: 1 <= индекс [i] <= N [i], где N [i] = размер i-ой размерности.public void set(int index, java.lang.Object element)
MWArray
public void set(int[] index, Object element)
. Пример: устанавливание значения MWArray
Измените данные в элементе (2, 4) объекта MWArray A:int[] index = {2, 4}; A.set(index, 555); Object d_out = A.get(index); System.out.println("Data read from A(2,4) is " + d_out.toString());Когда запущено, пример отображает этот вывод:
Data read from A(2,4) is 555
public void set(int[] index, java.lang.Object element)
MWArray
set
в классе MWArray
index
- Массив индексов, задающих местоположение элемента, чтобы заменить. Длина массива индекса должна быть точно количеством размерностей этого массива. Каждый элемент массива индекса имеет допустимую область значений: 1 <= индекс [i] <= N [i], где N [i] = размер i-ой размерности.element
- Новый элемент, чтобы заменить в индексе.public java.lang.Object getData()
MWArray
getData
возвращает действительную часть. Если основной массив является ячейкой или массивом структур, toArray
рекурсивно называется на каждой ячейке. Пример: Получение Значения MWArray с getData
Получите данные из объекта MWArray A, бросив тип от Объекта до int:System.out.println("Data read from matrix A:"); int[] x = (int[]) A.getData(); for (int i = 0; i < x.length; i++) System.out.print(" " + x[i]); System.out.println();Когда запущено, пример отображает этот вывод:
Data read from matrix A: 1 7 13 2 8 14 3 9 15 4 10 16 5 11 17 6 12 18
getData
в классе MWArray
MWArray.numberOfElements()
для неразреженного массива и MWArray.numberOfNonZeros()
для разреженного массива.public int[] rowIndex()
MWArray
newSparse
метод): (2,1) 50 (1,2) 10 (2,2) 60 (1,5) 40 (2,5) 90
Пример: получение индексов строки разреженного MWArray
Получите индексы строки элементов разреженного массива:System.out.print("Row indices are: "); int[] rowidx = A.rowIndex(); for (int i = 0; i < 5; i++) System.out.print(rowidx[i] + " "); System.out.println();Когда запущено, пример отображает этот вывод:
Row indices are: 2 1 2 1 2
public int[] columnIndex()
MWArray
newSparse
метод): (2,1) 50 (1,2) 10 (2,2) 60 (1,5) 40 (2,5) 90
Пример: получение индексов столбца разреженного MWArray
Получите индексы столбца элементов разреженного массива:System.out.print("Column indices are: "); int[] colidx = A.columnIndex(); for (int i = 0; i < 5; i++) System.out.print(colidx[i] + " "); System.out.println();Когда запущено, пример отображает этот вывод:
Column indices are: 1 2 2 5 5
columnIndex
в классе MWArray
© 1994-2017 The MathWorks, Inc. • патентует Торговые марки •